contentful-management 12.0.0-beta.1 → 12.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/README.md +3 -0
  2. package/dist/cjs/adapters/REST/endpoints/access-token.cjs +136 -0
  3. package/dist/cjs/adapters/REST/endpoints/ai-action-invocation.cjs +9 -0
  4. package/dist/cjs/adapters/REST/endpoints/ai-action.cjs +53 -0
  5. package/dist/cjs/adapters/REST/endpoints/api-key.cjs +48 -0
  6. package/dist/cjs/adapters/REST/endpoints/app-access-token.cjs +9 -0
  7. package/dist/cjs/adapters/REST/endpoints/app-action-call.cjs +65 -0
  8. package/dist/cjs/adapters/REST/endpoints/app-action.cjs +42 -0
  9. package/dist/cjs/adapters/REST/endpoints/app-bundle.cjs +39 -0
  10. package/dist/cjs/adapters/REST/endpoints/app-definition.cjs +47 -0
  11. package/dist/cjs/adapters/REST/endpoints/app-details.cjs +17 -0
  12. package/dist/cjs/adapters/REST/endpoints/app-event-subscription.cjs +17 -0
  13. package/dist/cjs/adapters/REST/endpoints/app-installation.cjs +42 -0
  14. package/dist/cjs/adapters/REST/endpoints/app-key.cjs +21 -0
  15. package/dist/cjs/adapters/REST/endpoints/app-signed-request.cjs +9 -0
  16. package/dist/cjs/adapters/REST/endpoints/app-signing-secret.cjs +17 -0
  17. package/dist/cjs/adapters/REST/endpoints/app-upload.cjs +28 -0
  18. package/dist/cjs/adapters/REST/endpoints/asset-key.cjs +34 -0
  19. package/dist/cjs/adapters/REST/endpoints/asset.cjs +185 -0
  20. package/dist/cjs/adapters/REST/endpoints/bulk-action.cjs +21 -0
  21. package/dist/cjs/adapters/REST/endpoints/comment.cjs +92 -0
  22. package/dist/cjs/adapters/REST/endpoints/concept-scheme.cjs +44 -0
  23. package/dist/cjs/adapters/REST/endpoints/concept.cjs +65 -0
  24. package/dist/cjs/adapters/REST/endpoints/content-type.cjs +56 -0
  25. package/dist/cjs/adapters/REST/endpoints/editor-interface.cjs +24 -0
  26. package/dist/cjs/adapters/REST/endpoints/entry.cjs +104 -0
  27. package/dist/cjs/adapters/REST/endpoints/environment-alias.cjs +44 -0
  28. package/dist/cjs/adapters/REST/endpoints/environment-template-installation.cjs +23 -0
  29. package/dist/cjs/adapters/REST/endpoints/environment-template.cjs +49 -0
  30. package/dist/cjs/adapters/REST/endpoints/environment.cjs +47 -0
  31. package/dist/cjs/adapters/REST/endpoints/extension.cjs +44 -0
  32. package/dist/cjs/adapters/REST/endpoints/function-log.cjs +23 -0
  33. package/dist/cjs/adapters/REST/endpoints/function.cjs +25 -0
  34. package/dist/cjs/adapters/REST/endpoints/http.cjs +29 -0
  35. package/dist/cjs/adapters/REST/endpoints/index.cjs +139 -0
  36. package/dist/cjs/adapters/REST/endpoints/locale.cjs +37 -0
  37. package/dist/cjs/adapters/REST/endpoints/oauth-application.cjs +147 -0
  38. package/dist/cjs/adapters/REST/endpoints/organization-invitation.cjs +23 -0
  39. package/dist/cjs/adapters/REST/endpoints/organization-membership.cjs +32 -0
  40. package/dist/cjs/adapters/REST/endpoints/organization.cjs +28 -0
  41. package/dist/cjs/adapters/REST/endpoints/personal-access-token.cjs +37 -0
  42. package/dist/cjs/adapters/REST/endpoints/preview-api-key.cjs +15 -0
  43. package/dist/cjs/adapters/REST/endpoints/raw.cjs +44 -0
  44. package/dist/cjs/adapters/REST/endpoints/release-action.cjs +21 -0
  45. package/dist/cjs/adapters/REST/endpoints/release.cjs +61 -0
  46. package/dist/cjs/adapters/REST/endpoints/resource-provider.cjs +18 -0
  47. package/dist/cjs/adapters/REST/endpoints/resource-type.cjs +30 -0
  48. package/dist/cjs/adapters/REST/endpoints/resource.cjs +10 -0
  49. package/dist/cjs/adapters/REST/endpoints/role.cjs +48 -0
  50. package/dist/cjs/adapters/REST/endpoints/scheduled-action.cjs +44 -0
  51. package/dist/cjs/adapters/REST/endpoints/snapshot.cjs +30 -0
  52. package/dist/cjs/adapters/REST/endpoints/space-member.cjs +11 -0
  53. package/dist/cjs/adapters/REST/endpoints/space-membership.cjs +60 -0
  54. package/dist/cjs/adapters/REST/endpoints/space.cjs +34 -0
  55. package/dist/cjs/adapters/REST/endpoints/tag.cjs +37 -0
  56. package/dist/cjs/adapters/REST/endpoints/task.cjs +40 -0
  57. package/dist/cjs/adapters/REST/endpoints/team-membership.cjs +35 -0
  58. package/dist/cjs/adapters/REST/endpoints/team-space-membership.cjs +46 -0
  59. package/dist/cjs/adapters/REST/endpoints/team.cjs +36 -0
  60. package/dist/cjs/adapters/REST/endpoints/ui-config.cjs +22 -0
  61. package/dist/cjs/adapters/REST/endpoints/upload-credentials.cjs +16 -0
  62. package/dist/cjs/adapters/REST/endpoints/upload.cjs +42 -0
  63. package/dist/cjs/adapters/REST/endpoints/usage.cjs +17 -0
  64. package/dist/cjs/adapters/REST/endpoints/user-ui-config.cjs +22 -0
  65. package/dist/cjs/adapters/REST/endpoints/user.cjs +27 -0
  66. package/dist/cjs/adapters/REST/endpoints/utils.cjs +20 -0
  67. package/dist/cjs/adapters/REST/endpoints/webhook.cjs +98 -0
  68. package/dist/cjs/adapters/REST/endpoints/workflow-definition.cjs +41 -0
  69. package/dist/cjs/adapters/REST/endpoints/workflow.cjs +49 -0
  70. package/dist/cjs/adapters/REST/endpoints/workflows-changelog.cjs +11 -0
  71. package/dist/cjs/adapters/REST/make-request.cjs +19 -0
  72. package/dist/cjs/adapters/REST/rest-adapter.cjs +32 -0
  73. package/dist/cjs/common-types.cjs +6 -0
  74. package/dist/cjs/common-utils.cjs +38 -0
  75. package/dist/cjs/constants/editor-interface-defaults/controls-defaults.cjs +161 -0
  76. package/dist/cjs/constants/editor-interface-defaults/editors-defaults.cjs +40 -0
  77. package/dist/cjs/constants/editor-interface-defaults/index.cjs +14 -0
  78. package/dist/cjs/constants/editor-interface-defaults/sidebar-defaults.cjs +71 -0
  79. package/dist/cjs/constants/editor-interface-defaults/types.cjs +18 -0
  80. package/dist/cjs/create-adapter.cjs +21 -0
  81. package/dist/cjs/create-app-definition-api.cjs +254 -0
  82. package/dist/cjs/create-contentful-api.cjs +592 -0
  83. package/dist/cjs/create-entry-api.cjs +481 -0
  84. package/dist/cjs/create-environment-api.cjs +2403 -0
  85. package/dist/cjs/create-environment-template-api.cjs +270 -0
  86. package/dist/cjs/create-organization-api.cjs +1136 -0
  87. package/dist/cjs/create-space-api.cjs +1591 -0
  88. package/dist/cjs/create-ui-config-api.cjs +55 -0
  89. package/dist/cjs/create-user-ui-config-api.cjs +55 -0
  90. package/dist/cjs/enhance-with-methods.cjs +26 -0
  91. package/dist/cjs/entities/access-token.cjs +36 -0
  92. package/dist/cjs/entities/ai-action-invocation.cjs +46 -0
  93. package/dist/cjs/entities/ai-action.cjs +94 -0
  94. package/dist/cjs/entities/api-key.cjs +59 -0
  95. package/dist/cjs/entities/app-access-token.cjs +17 -0
  96. package/dist/cjs/entities/app-action-call.cjs +67 -0
  97. package/dist/cjs/entities/app-action.cjs +48 -0
  98. package/dist/cjs/entities/app-bundle.cjs +48 -0
  99. package/dist/cjs/entities/app-definition.cjs +29 -0
  100. package/dist/cjs/entities/app-details.cjs +39 -0
  101. package/dist/cjs/entities/app-event-subscription.cjs +34 -0
  102. package/dist/cjs/entities/app-installation.cjs +55 -0
  103. package/dist/cjs/entities/app-key.cjs +44 -0
  104. package/dist/cjs/entities/app-signed-request.cjs +17 -0
  105. package/dist/cjs/entities/app-signing-secret.cjs +34 -0
  106. package/dist/cjs/entities/app-upload.cjs +47 -0
  107. package/dist/cjs/entities/asset-key.cjs +17 -0
  108. package/dist/cjs/entities/asset.cjs +124 -0
  109. package/dist/cjs/entities/bulk-action.cjs +60 -0
  110. package/dist/cjs/entities/comment.cjs +63 -0
  111. package/dist/cjs/entities/concept-scheme.cjs +2 -0
  112. package/dist/cjs/entities/concept.cjs +2 -0
  113. package/dist/cjs/entities/content-type.cjs +120 -0
  114. package/dist/cjs/entities/editor-interface.cjs +50 -0
  115. package/dist/cjs/entities/entry.cjs +27 -0
  116. package/dist/cjs/entities/environment-alias.cjs +58 -0
  117. package/dist/cjs/entities/environment-template-installation.cjs +23 -0
  118. package/dist/cjs/entities/environment-template.cjs +18 -0
  119. package/dist/cjs/entities/environment.cjs +34 -0
  120. package/dist/cjs/entities/extension.cjs +54 -0
  121. package/dist/cjs/entities/function-log.cjs +26 -0
  122. package/dist/cjs/entities/function.cjs +66 -0
  123. package/dist/cjs/entities/index.cjs +131 -0
  124. package/dist/cjs/entities/locale.cjs +57 -0
  125. package/dist/cjs/entities/oauth-application.cjs +66 -0
  126. package/dist/cjs/entities/organization-invitation.cjs +17 -0
  127. package/dist/cjs/entities/organization-membership.cjs +53 -0
  128. package/dist/cjs/entities/organization.cjs +32 -0
  129. package/dist/cjs/entities/personal-access-token.cjs +36 -0
  130. package/dist/cjs/entities/preview-api-key.cjs +31 -0
  131. package/dist/cjs/entities/release-action.cjs +55 -0
  132. package/dist/cjs/entities/release.cjs +111 -0
  133. package/dist/cjs/entities/resource-provider.cjs +139 -0
  134. package/dist/cjs/entities/resource-type.cjs +98 -0
  135. package/dist/cjs/entities/resource.cjs +13 -0
  136. package/dist/cjs/entities/role.cjs +53 -0
  137. package/dist/cjs/entities/scheduled-action.cjs +154 -0
  138. package/dist/cjs/entities/snapshot.cjs +36 -0
  139. package/dist/cjs/entities/space-member.cjs +23 -0
  140. package/dist/cjs/entities/space-membership.cjs +53 -0
  141. package/dist/cjs/entities/space.cjs +33 -0
  142. package/dist/cjs/entities/tag.cjs +56 -0
  143. package/dist/cjs/entities/task.cjs +57 -0
  144. package/dist/cjs/entities/team-membership.cjs +54 -0
  145. package/dist/cjs/entities/team-space-membership.cjs +53 -0
  146. package/dist/cjs/entities/team.cjs +53 -0
  147. package/dist/cjs/entities/ui-config.cjs +20 -0
  148. package/dist/cjs/entities/upload.cjs +38 -0
  149. package/dist/cjs/entities/usage.cjs +25 -0
  150. package/dist/cjs/entities/user-ui-config.cjs +20 -0
  151. package/dist/cjs/entities/user.cjs +28 -0
  152. package/dist/cjs/entities/webhook.cjs +77 -0
  153. package/dist/cjs/entities/workflow-definition.cjs +79 -0
  154. package/dist/cjs/index.cjs +65 -0
  155. package/dist/cjs/methods/action.cjs +53 -0
  156. package/dist/cjs/methods/content-type.cjs +51 -0
  157. package/dist/cjs/methods/utils.cjs +11 -0
  158. package/dist/cjs/plain/as-iterator.cjs +32 -0
  159. package/dist/cjs/plain/checks.cjs +15 -0
  160. package/dist/cjs/plain/pagination-helper.cjs +56 -0
  161. package/dist/cjs/plain/plain-client.cjs +516 -0
  162. package/dist/cjs/plain/wrappers/wrap.cjs +26 -0
  163. package/dist/cjs/upload-http-client.cjs +17 -0
  164. package/dist/contentful-management.browser.js +50 -34
  165. package/dist/contentful-management.browser.min.js +1 -1
  166. package/dist/contentful-management.cjs +35 -19
  167. package/dist/esm/create-contentful-api.js +1 -1
  168. package/dist/esm/index.js +1 -1
  169. package/dist/esm/plain/plain-client.js +1 -1
  170. package/dist/stats-browser-min.html +1 -1
  171. package/package.json +6 -6
  172. package/types.d.ts +0 -1
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+
3
+ var types = require('./types.js');
4
+
5
+ const SidebarWidgetTypes = {
6
+ USERS: 'users-widget',
7
+ CONTENT_PREVIEW: 'content-preview-widget',
8
+ TRANSLATION: 'translation-widget',
9
+ INCOMING_LINKS: 'incoming-links-widget',
10
+ PUBLICATION: 'publication-widget',
11
+ RELEASES: 'releases-widget',
12
+ VERSIONS: 'versions-widget',
13
+ INFO_PANEL: 'info-panel',
14
+ JOBS: 'jobs-widget',
15
+ COMMENTS_PANEL: 'comments-panel',
16
+ };
17
+ const Publication = {
18
+ widgetId: SidebarWidgetTypes.PUBLICATION,
19
+ widgetNamespace: types.WidgetNamespace.SIDEBAR_BUILTIN,
20
+ name: 'Publish & Status',
21
+ description: 'Built-in - View entry status, publish, etc.',
22
+ };
23
+ const Releases = {
24
+ widgetId: SidebarWidgetTypes.RELEASES,
25
+ widgetNamespace: types.WidgetNamespace.SIDEBAR_BUILTIN,
26
+ name: 'Release',
27
+ description: 'Built-in - View release, add to it, etc.',
28
+ };
29
+ const ContentPreview = {
30
+ widgetId: SidebarWidgetTypes.CONTENT_PREVIEW,
31
+ widgetNamespace: types.WidgetNamespace.SIDEBAR_BUILTIN,
32
+ name: 'Preview',
33
+ description: 'Built-in - Displays preview functionality.',
34
+ };
35
+ const Links = {
36
+ widgetId: SidebarWidgetTypes.INCOMING_LINKS,
37
+ widgetNamespace: types.WidgetNamespace.SIDEBAR_BUILTIN,
38
+ name: 'Links',
39
+ description: 'Built-in - Shows where an entry is linked.',
40
+ };
41
+ const Translation = {
42
+ widgetId: SidebarWidgetTypes.TRANSLATION,
43
+ widgetNamespace: types.WidgetNamespace.SIDEBAR_BUILTIN,
44
+ name: 'Translation',
45
+ description: 'Built-in - Manage which translations are visible.',
46
+ };
47
+ const Versions = {
48
+ widgetId: SidebarWidgetTypes.VERSIONS,
49
+ widgetNamespace: types.WidgetNamespace.SIDEBAR_BUILTIN,
50
+ name: 'Versions',
51
+ description: 'Built-in - View previously published versions. Available only for master environment.',
52
+ };
53
+ const Users = {
54
+ widgetId: SidebarWidgetTypes.USERS,
55
+ widgetNamespace: types.WidgetNamespace.SIDEBAR_BUILTIN,
56
+ name: 'Users',
57
+ description: 'Built-in - Displays users on the same entry.',
58
+ };
59
+ const SidebarEntryConfiguration = [
60
+ Publication,
61
+ Releases,
62
+ ContentPreview,
63
+ Links,
64
+ Translation,
65
+ Versions,
66
+ Users,
67
+ ];
68
+ const SidebarAssetConfiguration = [Publication, Releases, Links, Translation, Users];
69
+
70
+ exports.SidebarAssetConfiguration = SidebarAssetConfiguration;
71
+ exports.SidebarEntryConfiguration = SidebarEntryConfiguration;
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ exports.WidgetNamespace = void 0;
4
+ (function (WidgetNamespace) {
5
+ WidgetNamespace["BUILTIN"] = "builtin";
6
+ WidgetNamespace["EXTENSION"] = "extension";
7
+ WidgetNamespace["SIDEBAR_BUILTIN"] = "sidebar-builtin";
8
+ WidgetNamespace["APP"] = "app";
9
+ WidgetNamespace["EDITOR_BUILTIN"] = "editor-builtin";
10
+ })(exports.WidgetNamespace || (exports.WidgetNamespace = {}));
11
+ const DEFAULT_EDITOR_ID = 'default-editor';
12
+ /**
13
+ * @private
14
+ */
15
+ const in_ = (key, object) => key in object;
16
+
17
+ exports.DEFAULT_EDITOR_ID = DEFAULT_EDITOR_ID;
18
+ exports.in_ = in_;
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var restAdapter = require('./adapters/REST/rest-adapter.js');
4
+
5
+ /**
6
+ * @packageDocumentation
7
+ * @hidden
8
+ */
9
+ /**
10
+ * @private
11
+ */
12
+ function createAdapter(params) {
13
+ if ('apiAdapter' in params) {
14
+ return params.apiAdapter;
15
+ }
16
+ else {
17
+ return new restAdapter.RestAdapter(params);
18
+ }
19
+ }
20
+
21
+ exports.createAdapter = createAdapter;
@@ -0,0 +1,254 @@
1
+ 'use strict';
2
+
3
+ var index = require('./entities/index.js');
4
+ var appDefinition = require('./entities/app-definition.js');
5
+
6
+ /**
7
+ * @private
8
+ */
9
+ function createAppDefinitionApi(makeRequest) {
10
+ const { wrapAppBundle, wrapAppBundleCollection } = index.appBundle;
11
+ const { wrapResourceProvider } = index.resourceProvider;
12
+ const getParams = (data) => ({
13
+ appDefinitionId: data.sys.id,
14
+ organizationId: data.sys.organization.sys.id,
15
+ });
16
+ return {
17
+ /**
18
+ * Sends an update to the server with any changes made to the object's properties
19
+ * @return Object returned from the server with updated changes.
20
+ * @example ```javascript
21
+ * const contentful = require('contentful-management')
22
+ *
23
+ * const client = contentful.createClient({
24
+ * accessToken: '<content_management_api_key>'
25
+ * })
26
+ *
27
+ * client.getOrganization('<org_id>')
28
+ * .then((org) => org.getAppDefinition('<app_def_id>'))
29
+ * .then((appDefinition) => {
30
+ * appDefinition.name = 'New App Definition name'
31
+ * return appDefinition.update()
32
+ * })
33
+ * .then((appDefinition) => console.log(`App Definition ${appDefinition.sys.id} updated.`))
34
+ * .catch(console.error)
35
+ * ```
36
+ */
37
+ update: function update() {
38
+ const data = this.toPlainObject();
39
+ return makeRequest({
40
+ entityType: 'AppDefinition',
41
+ action: 'update',
42
+ params: getParams(data),
43
+ headers: {},
44
+ payload: data,
45
+ }).then((data) => appDefinition.wrapAppDefinition(makeRequest, data));
46
+ },
47
+ /**
48
+ * Deletes this object on the server.
49
+ * @return Promise for the deletion. It contains no data, but the Promise error case should be handled.
50
+ * @example ```javascript
51
+ * const contentful = require('contentful-management')
52
+ *
53
+ * const client = contentful.createClient({
54
+ * accessToken: '<content_management_api_key>'
55
+ * })
56
+ *
57
+ * client.getOrganization('<org_id>')
58
+ * .then((org) => org.getAppDefinition('<app_def_id>'))
59
+ * .then((appDefinition) => appDefinition.delete())
60
+ * .then(() => console.log(`App Definition deleted.`))
61
+ * .catch(console.error)
62
+ * ```
63
+ */
64
+ delete: function del() {
65
+ const data = this.toPlainObject();
66
+ return makeRequest({
67
+ entityType: 'AppDefinition',
68
+ action: 'delete',
69
+ params: getParams(data),
70
+ });
71
+ },
72
+ /**
73
+ * Gets an app bundle
74
+ * @param id - AppBundle ID
75
+ * @return Promise for an AppBundle
76
+ * @example ```javascript
77
+ * const contentful = require('contentful-management')
78
+ * const client = contentful.createClient({
79
+ * accessToken: '<content_management_api_key>'
80
+ * })
81
+ *
82
+ * client.getOrganization('<org_id>')
83
+ * .then((org) => org.getAppDefinition('<app_def_id>'))
84
+ * .then((appDefinition) => appDefinition.getAppBundle('<app_upload_id>'))
85
+ * .then((appBundle) => console.log(appBundle))
86
+ * .catch(console.error)
87
+ * ```
88
+ */
89
+ getAppBundle(id) {
90
+ const raw = this.toPlainObject();
91
+ return makeRequest({
92
+ entityType: 'AppBundle',
93
+ action: 'get',
94
+ params: {
95
+ appBundleId: id,
96
+ appDefinitionId: raw.sys.id,
97
+ organizationId: raw.sys.organization.sys.id,
98
+ },
99
+ }).then((data) => wrapAppBundle(makeRequest, data));
100
+ },
101
+ /**
102
+ * Gets a collection of AppBundles
103
+ * @return Promise for a collection of AppBundles
104
+ * @example ```javascript
105
+ * const contentful = require('contentful-management')
106
+ * const client = contentful.createClient({
107
+ * accessToken: '<content_management_api_key>'
108
+ * })
109
+ *
110
+ * client.getOrganization('<org_id>')
111
+ * .then((org) => org.getAppDefinition('<app_def_id>'))
112
+ * .then((appDefinition) => appDefinition.getAppBundles())
113
+ * .then((response) => console.log(response.items))
114
+ * .catch(console.error)
115
+ * ```
116
+ */
117
+ getAppBundles(query = {}) {
118
+ const raw = this.toPlainObject();
119
+ return makeRequest({
120
+ entityType: 'AppBundle',
121
+ action: 'getMany',
122
+ params: { organizationId: raw.sys.organization.sys.id, appDefinitionId: raw.sys.id, query },
123
+ }).then((data) => wrapAppBundleCollection(makeRequest, data));
124
+ },
125
+ /**
126
+ * Creates an app bundle
127
+ * @param Object representation of the App Bundle to be created
128
+ * @return Promise for the newly created AppBundle
129
+ * @example ```javascript
130
+ * const contentful = require('contentful-management')
131
+ * const client = contentful.createClient({
132
+ * accessToken: '<content_management_api_key>'
133
+ * })
134
+ * client.getOrganization('<org_id>')
135
+ * .then((org) => org.getAppDefinition('<app_def_id>'))
136
+ * .then((appDefinition) => appDefinition.createAppBundle('<app_upload_id>'))
137
+ * .then((appBundle) => console.log(appBundle))
138
+ * .catch(console.error)
139
+ * ```
140
+ */
141
+ createAppBundle(data) {
142
+ const raw = this.toPlainObject();
143
+ return makeRequest({
144
+ entityType: 'AppBundle',
145
+ action: 'create',
146
+ params: {
147
+ appDefinitionId: raw.sys.id,
148
+ organizationId: raw.sys.organization.sys.id,
149
+ },
150
+ payload: data,
151
+ }).then((data) => wrapAppBundle(makeRequest, data));
152
+ },
153
+ /**
154
+ * Gets a list of App Installations across an org for given organization and App Definition
155
+ * If a spaceId is provided in the query object, it will return the App Installations for that specific space.
156
+ * @return Promise for the newly created AppBundle
157
+ * @example ```javascript
158
+ * const contentful = require('contentful-management')
159
+ * const client = contentful.createClient({
160
+ * accessToken: '<content_management_api_key>'
161
+ * })
162
+ * client.getAppDefinition('<organization_id>', '<app_definition_id>')
163
+ * .then((appDefinition) => appDefinition.getInstallationsForOrg(
164
+ * { spaceId: '<space_id>' } // optional
165
+ * ))
166
+ * .then((appInstallationsForOrg) => console.log(appInstallationsForOrg.items))
167
+ * .catch(console.error)
168
+ * ```
169
+ */
170
+ getInstallationsForOrg(query = {}) {
171
+ const raw = this.toPlainObject();
172
+ return makeRequest({
173
+ entityType: 'AppDefinition',
174
+ action: 'getInstallationsForOrg',
175
+ params: {
176
+ appDefinitionId: raw.sys.id,
177
+ organizationId: raw.sys.organization.sys.id,
178
+ query,
179
+ },
180
+ });
181
+ },
182
+ /**
183
+ * Creates or updates a resource provider
184
+ * @param data representation of the ResourceProvider
185
+ * @return Promise for the newly created or updated ResourceProvider
186
+ * @example ```javascript
187
+ * const contentful = require('contentful-management')
188
+ * const client = contentful.createClient({
189
+ * accessToken: '<content_management_api_key>'
190
+ * })
191
+ *
192
+ * // You need a valid AppDefinition with an activated AppBundle that has a contentful function configured
193
+ * client.getOrganization('<org_id>')
194
+ * .then((org) => org.getAppDefinition('<app_def_id>'))
195
+ * .then((appDefinition) => appDefinition.upsertResourceProvider({
196
+ * sys: {
197
+ * id: '<resource_provider_id>'
198
+ * },
199
+ * type: 'function',
200
+ * function: {
201
+ * sys: {
202
+ * id: '<contentful_function_id>',
203
+ * type: 'Link'
204
+ * linkType: 'Function'
205
+ * }
206
+ * }
207
+ * }))
208
+ * .then((resourceProvider) => console.log(resourceProvider))
209
+ * .catch(console.error)
210
+ * ```
211
+ */
212
+ upsertResourceProvider(data) {
213
+ const raw = this.toPlainObject();
214
+ return makeRequest({
215
+ entityType: 'ResourceProvider',
216
+ action: 'upsert',
217
+ params: {
218
+ appDefinitionId: raw.sys.id,
219
+ organizationId: raw.sys.organization.sys.id,
220
+ },
221
+ payload: data,
222
+ }).then((payload) => wrapResourceProvider(makeRequest, payload));
223
+ },
224
+ /**
225
+ * Gets a Resource Provider
226
+ * @return Promise for a Resource Provider
227
+ * @example ```javascript
228
+ * const contentful = require('contentful-management')
229
+ * const client = contentful.createClient({
230
+ * accessToken: '<content_management_api_key>'
231
+ * })
232
+ *
233
+ * client.getOrganization('<org_id>')
234
+ * .then((org) => org.getAppDefinition('<app_def_id>'))
235
+ * .then((appDefinition) => appDefinition.getResourceProvider())
236
+ * .then((resourceProvider) => console.log(resourceProvider))
237
+ * .catch(console.error)
238
+ * ```
239
+ */
240
+ getResourceProvider() {
241
+ const raw = this.toPlainObject();
242
+ return makeRequest({
243
+ entityType: 'ResourceProvider',
244
+ action: 'get',
245
+ params: {
246
+ appDefinitionId: raw.sys.id,
247
+ organizationId: raw.sys.organization.sys.id,
248
+ },
249
+ }).then((payload) => wrapResourceProvider(makeRequest, payload));
250
+ },
251
+ };
252
+ }
253
+
254
+ module.exports = createAppDefinitionApi;