@forge/manifest 4.1.0 → 4.2.0

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.
@@ -2913,7 +2913,7 @@
2913
2913
  "title": {
2914
2914
  "type": "string",
2915
2915
  "minLength": 1,
2916
- "maxLength": 254
2916
+ "maxLength": 255
2917
2917
  },
2918
2918
  "resolver": {
2919
2919
  "additionalProperties": false,
@@ -3652,6 +3652,12 @@
3652
3652
  "type": "object",
3653
3653
  "properties": {}
3654
3654
  },
3655
+ "useAsConfig": {
3656
+ "type": "boolean"
3657
+ },
3658
+ "useAsGetStarted": {
3659
+ "type": "boolean"
3660
+ },
3655
3661
  "key": {
3656
3662
  "$ref": "#/definitions/ModuleKeySchema"
3657
3663
  }
@@ -3783,6 +3789,12 @@
3783
3789
  "type": "object",
3784
3790
  "properties": {}
3785
3791
  },
3792
+ "useAsConfig": {
3793
+ "type": "boolean"
3794
+ },
3795
+ "useAsGetStarted": {
3796
+ "type": "boolean"
3797
+ },
3786
3798
  "key": {
3787
3799
  "$ref": "#/definitions/ModuleKeySchema"
3788
3800
  }
@@ -4847,6 +4859,47 @@
4847
4859
  },
4848
4860
  "minItems": 1
4849
4861
  },
4862
+ "jira:issueViewBackgroundScript": {
4863
+ "type": "array",
4864
+ "items": {
4865
+ "type": "object",
4866
+ "properties": {
4867
+ "resource": {
4868
+ "type": "string",
4869
+ "minLength": 1,
4870
+ "maxLength": 23,
4871
+ "pattern": "^[a-zA-Z0-9_\\-]+$"
4872
+ },
4873
+ "resolver": {
4874
+ "additionalProperties": false,
4875
+ "type": "object",
4876
+ "properties": {
4877
+ "function": {
4878
+ "type": "string",
4879
+ "minLength": 1,
4880
+ "maxLength": 255,
4881
+ "pattern": "^[a-zA-Z0-9-_]+$"
4882
+ }
4883
+ },
4884
+ "required": [
4885
+ "function"
4886
+ ]
4887
+ },
4888
+ "displayConditions": {
4889
+ "type": "object",
4890
+ "properties": {}
4891
+ },
4892
+ "key": {
4893
+ "$ref": "#/definitions/ModuleKeySchema"
4894
+ }
4895
+ },
4896
+ "required": [
4897
+ "resource",
4898
+ "key"
4899
+ ]
4900
+ },
4901
+ "minItems": 1
4902
+ },
4850
4903
  "compass:adminPage": {
4851
4904
  "type": "array",
4852
4905
  "items": {
@@ -5308,7 +5361,8 @@
5308
5361
  "maxLength": 255,
5309
5362
  "enum": [
5310
5363
  "native",
5311
- "basic"
5364
+ "basic",
5365
+ "blank"
5312
5366
  ]
5313
5367
  },
5314
5368
  "resolver": {
@@ -6569,10 +6623,10 @@
6569
6623
  "type": "object",
6570
6624
  "anyOf": [
6571
6625
  {
6572
- "$ref": "#/definitions/compositeCondition"
6626
+ "$ref": "#/definitions/singleCondition"
6573
6627
  },
6574
6628
  {
6575
- "$ref": "#/definitions/singleCondition"
6629
+ "$ref": "#/definitions/compositeCondition"
6576
6630
  }
6577
6631
  ]
6578
6632
  },
@@ -6695,10 +6749,10 @@
6695
6749
  "type": "object",
6696
6750
  "anyOf": [
6697
6751
  {
6698
- "$ref": "#/definitions/singleCondition"
6752
+ "$ref": "#/definitions/compositeCondition"
6699
6753
  },
6700
6754
  {
6701
- "$ref": "#/definitions/compositeCondition"
6755
+ "$ref": "#/definitions/singleCondition"
6702
6756
  }
6703
6757
  ]
6704
6758
  },
@@ -6713,7 +6767,6 @@
6713
6767
  "fieldDescription": "\n\nSpecifies entity properties which will be returned inside JSON body. If not specified no properties will be returned.\n\n Currently this is supported only in Jira webhooks, for all events that support <a href=\"/cloud/jira/platform/jira-entity-properties/\">Entity Properties</a>.\n Note that properties won't be returned for entity-deleted events, since the properties are already deleted by the time the webhook is sent.\n\n"
6714
6768
  },
6715
6769
  "url": {
6716
- "format": "uri",
6717
6770
  "type": "string",
6718
6771
  "fieldDescription": "\n\nSpecifies your add-on's POST webhook handler URL. This property must be a URL relative to the add-on's baseUrl.\n\n"
6719
6772
  },
@@ -7111,6 +7164,33 @@
7111
7164
  "items": {
7112
7165
  "type": "object",
7113
7166
  "anyOf": [
7167
+ {
7168
+ "properties": {
7169
+ "condition": {
7170
+ "maxLength": 100,
7171
+ "type": "string",
7172
+ "fieldDescription": "\n\nA string indicating the name of the condition\n\n"
7173
+ },
7174
+ "invert": {
7175
+ "type": "boolean",
7176
+ "fieldDescription": "\n\nA flag indicating whether to invert the boolean result of the condition.\n\n",
7177
+ "defaultValue": "false"
7178
+ },
7179
+ "params": {
7180
+ "additionalProperties": true,
7181
+ "type": "object",
7182
+ "fieldTitle": "Object",
7183
+ "fieldDescription": "\n\nThis object represents a map of key/value pairs, where each property name and value corresponds to the parameter name and value respectively.\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"params\": {\n \"someOtherProperty\": \"someValue\",\n \"myCustomProperty\": \"myValue\"\n }\n }\n\n\n"
7184
+ }
7185
+ },
7186
+ "required": [
7187
+ "condition"
7188
+ ],
7189
+ "shortClassName": "singleConditionBean",
7190
+ "type": "object",
7191
+ "title": "Single Condition",
7192
+ "description": "\n\nSingle Conditions are either provided by the host application. See the complete documentation of\n [Conditions](../../conditions/) for more information.\n\n To invert a condition, add the attribute ``invert=\"true\"`` to the condition element.\n This is useful where you want to show the section if a certain condition is not satisfied.\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"condition\": \"user_is_logged_in\",\n \"invert\": false\n }\n\n\n"
7193
+ },
7114
7194
  {
7115
7195
  "properties": {
7116
7196
  "conditions": {
@@ -7118,7 +7198,37 @@
7118
7198
  "type": "object",
7119
7199
  "anyOf": [
7120
7200
  {
7121
- "$ref": "#"
7201
+ "properties": {
7202
+ "conditions": {
7203
+ "items": {
7204
+ "type": "object",
7205
+ "anyOf": [
7206
+ {
7207
+ "$ref": "#"
7208
+ },
7209
+ {
7210
+ "$ref": "#/definitions/singleCondition"
7211
+ }
7212
+ ]
7213
+ },
7214
+ "type": "array",
7215
+ "fieldDescription": "\n\nThe conditions to compose using the specific logical operator.\n\n"
7216
+ },
7217
+ "type": {
7218
+ "enum": [
7219
+ "and",
7220
+ "AND",
7221
+ "or",
7222
+ "OR"
7223
+ ],
7224
+ "type": "string",
7225
+ "fieldDescription": "\n\nDefines what logical operator is used to evaluate its collection of condition elements.\n\n"
7226
+ }
7227
+ },
7228
+ "shortClassName": "compositeConditionBean",
7229
+ "type": "object",
7230
+ "title": "Composite Condition",
7231
+ "description": "\n\nComposite Conditions are composed of a collection of [Single Condition](../single-condition/) / Composite Conditions\n and a type attribute.\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"conditions\": [\n {\n \"or\": [\n {\n \"condition\": \"can_attach_file_to_issue\",\n \"invert\": false\n },\n {\n \"condition\": \"is_issue_assigned_to_current_user\",\n \"invert\": false\n }\n ]\n },\n {\n \"condition\": \"user_is_logged_in\",\n \"invert\": false\n }\n ]\n }\n\n\n"
7122
7232
  },
7123
7233
  {
7124
7234
  "$ref": "#/definitions/singleCondition"
@@ -7143,33 +7253,6 @@
7143
7253
  "type": "object",
7144
7254
  "title": "Composite Condition",
7145
7255
  "description": "\n\nComposite Conditions are composed of a collection of [Single Condition](../single-condition/) / Composite Conditions\n and a type attribute.\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"conditions\": [\n {\n \"or\": [\n {\n \"condition\": \"can_attach_file_to_issue\",\n \"invert\": false\n },\n {\n \"condition\": \"is_issue_assigned_to_current_user\",\n \"invert\": false\n }\n ]\n },\n {\n \"condition\": \"user_is_logged_in\",\n \"invert\": false\n }\n ]\n }\n\n\n"
7146
- },
7147
- {
7148
- "properties": {
7149
- "condition": {
7150
- "maxLength": 100,
7151
- "type": "string",
7152
- "fieldDescription": "\n\nA string indicating the name of the condition\n\n"
7153
- },
7154
- "invert": {
7155
- "type": "boolean",
7156
- "fieldDescription": "\n\nA flag indicating whether to invert the boolean result of the condition.\n\n",
7157
- "defaultValue": "false"
7158
- },
7159
- "params": {
7160
- "additionalProperties": true,
7161
- "type": "object",
7162
- "fieldTitle": "Object",
7163
- "fieldDescription": "\n\nThis object represents a map of key/value pairs, where each property name and value corresponds to the parameter name and value respectively.\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"params\": {\n \"someOtherProperty\": \"someValue\",\n \"myCustomProperty\": \"myValue\"\n }\n }\n\n\n"
7164
- }
7165
- },
7166
- "required": [
7167
- "condition"
7168
- ],
7169
- "shortClassName": "singleConditionBean",
7170
- "type": "object",
7171
- "title": "Single Condition",
7172
- "description": "\n\nSingle Conditions are either provided by the host application. See the complete documentation of\n [Conditions](../../conditions/) for more information.\n\n To invert a condition, add the attribute ``invert=\"true\"`` to the condition element.\n This is useful where you want to show the section if a certain condition is not satisfied.\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"condition\": \"user_is_logged_in\",\n \"invert\": false\n }\n\n\n"
7173
7256
  }
7174
7257
  ]
7175
7258
  },
@@ -7223,10 +7306,10 @@
7223
7306
  "type": "object",
7224
7307
  "anyOf": [
7225
7308
  {
7226
- "$ref": "#/definitions/compositeCondition"
7309
+ "$ref": "#/definitions/singleCondition"
7227
7310
  },
7228
7311
  {
7229
- "$ref": "#/definitions/singleCondition"
7312
+ "$ref": "#/definitions/compositeCondition"
7230
7313
  }
7231
7314
  ]
7232
7315
  },
@@ -7464,48 +7547,43 @@
7464
7547
  },
7465
7548
  "minItems": 1
7466
7549
  },
7467
- "connect-jira:jiraDeploymentInfoProvider": {
7550
+ "connect-jira:jiraProjectPages": {
7468
7551
  "type": "array",
7469
7552
  "items": {
7470
7553
  "properties": {
7471
- "homeUrl": {
7472
- "type": "string",
7473
- "fieldDescription": "\n\nURL to the provider's homepage\n\n"
7474
- },
7475
- "documentationUrl": {
7476
- "type": "string",
7477
- "fieldDescription": "\n\nOptional URL to documentation about the provider's Jira integration\n\n"
7478
- },
7479
7554
  "name": {
7480
7555
  "$ref": "#/definitions/i18nProperty",
7481
7556
  "fieldDescription": "\n\nA human readable name.\n\n"
7482
7557
  },
7483
- "actions": {
7484
- "properties": {
7485
- "listDeployments": {
7486
- "properties": {
7487
- "templateUrl": {
7488
- "type": "string",
7489
- "fieldDescription": "\n\n"
7490
- }
7558
+ "weight": {
7559
+ "type": "integer",
7560
+ "fieldDescription": "\n\nSpecifies the ordering of the link in the project sidebar.\n\n <p>The \"lightest\" weight (i.e., lowest number) appears first, rising relative to other items, while the \"heaviest\"\n weights sink to the bottom of the menu or list.</p>\n\n",
7561
+ "defaultValue": "100"
7562
+ },
7563
+ "iconUrl": {
7564
+ "format": "uri",
7565
+ "type": "string",
7566
+ "fieldDescription": "\n\nSpecifies an icon URL that will displayed alongside the link to the project page in the project sidebar.\n\n The icon resource provided in this field should be larger or equals to 16x16 pixels.<br>\n\n"
7567
+ },
7568
+ "conditions": {
7569
+ "items": {
7570
+ "type": "object",
7571
+ "anyOf": [
7572
+ {
7573
+ "$ref": "#/definitions/singleCondition"
7491
7574
  },
7492
- "required": [
7493
- "templateUrl"
7494
- ],
7495
- "shortClassName": "deploymentProviderActionBean",
7496
- "type": "object",
7497
- "description": "\n\n<p>Defines the URL template that is used when an action is invoked. The following context parameters are supported: <code>{issue.key}</code>, <code>{issue.summary}</code>, <code>{issue.deployments}</code>.</p>\n\n",
7498
- "fieldDescription": "\n\nAction for showing all linked deployments, when there are multiple deployments linked to a Jira issue.\n\n"
7499
- }
7575
+ {
7576
+ "$ref": "#/definitions/compositeCondition"
7577
+ }
7578
+ ]
7500
7579
  },
7501
- "shortClassName": "deploymentProviderAllActionsBean",
7502
- "type": "object",
7503
- "description": "\n\n<p>Deployment actions that can be performed by Jira users.</p>\n<p>Each action is optional (unless indicated otherwise). The absence of an action indicates that the action is not supported by the provider.</p>\n\n",
7504
- "fieldDescription": "\n\nOptional actions that can be performed by Jira users, e.g., list all deployments associated with the issue.\n\n"
7580
+ "type": "array",
7581
+ "fieldDescription": "\n\n<a href=\"../../conditions/\">Conditions</a> can be added to display only when all the given conditions are true.\n\n"
7505
7582
  },
7506
- "logoUrl": {
7583
+ "url": {
7584
+ "format": "uri",
7507
7585
  "type": "string",
7508
- "fieldDescription": "\n\nOptional URL to the provider's logo, which will be displayed in the UI\n\n"
7586
+ "fieldDescription": "\n\nSpecifies the URL targeted by the page. The URL is relative to the add-on's base URL.\n\n"
7509
7587
  },
7510
7588
  "key": {
7511
7589
  "$ref": "#/definitions/ModuleKeySchema"
@@ -7517,7 +7595,7 @@
7517
7595
  },
7518
7596
  "minItems": 1
7519
7597
  },
7520
- "connect-jira:jiraReports": {
7598
+ "connect-jira:jiraSearchRequestViews": {
7521
7599
  "type": "array",
7522
7600
  "items": {
7523
7601
  "properties": {
@@ -7525,223 +7603,38 @@
7525
7603
  "$ref": "#/definitions/i18nProperty",
7526
7604
  "fieldDescription": "\n\nA human readable name.\n\n"
7527
7605
  },
7606
+ "weight": {
7607
+ "type": "integer",
7608
+ "fieldDescription": "\n\nDetermines the order in which the Search Request View entry appears in the <em>Export</em> menu.\n\n The \"lightest\" weight (i.e., lowest number) appears first, rising relative to other items,\n while the \"heaviest\" weights sink to the bottom of the menu or list.\n\n"
7609
+ },
7528
7610
  "description": {
7529
7611
  "$ref": "#/definitions/i18nProperty",
7530
- "fieldDescription": "\n\nA human-readable description of this report module. This description is displayed on the reports list.\n\n"
7612
+ "fieldDescription": "\n\nA description of your Search Request View\n\n"
7531
7613
  },
7532
- "reportCategory": {
7533
- "enum": [
7534
- "agile",
7535
- "AGILE",
7536
- "issue_analysis",
7537
- "ISSUE_ANALYSIS",
7538
- "forecast_management",
7539
- "FORECAST_MANAGEMENT",
7540
- "other",
7541
- "OTHER"
7542
- ],
7543
- "type": "string",
7544
- "fieldDescription": "\n\nThe category of the report. The default category is other.\n\n",
7545
- "defaultValue": "other"
7614
+ "conditions": {
7615
+ "items": {
7616
+ "type": "object",
7617
+ "anyOf": [
7618
+ {
7619
+ "$ref": "#/definitions/compositeCondition"
7620
+ },
7621
+ {
7622
+ "$ref": "#/definitions/singleCondition"
7623
+ }
7624
+ ]
7625
+ },
7626
+ "type": "array",
7627
+ "fieldDescription": "\n\n<a href=\"../../conditions/\">Conditions</a> can be added to display only when all the given conditions are true.\n\n"
7628
+ },
7629
+ "params": {
7630
+ "additionalProperties": true,
7631
+ "type": "object",
7632
+ "fieldTitle": "Object",
7633
+ "fieldDescription": "\n\nThis object represents a map of key/value pairs, where each property name and value corresponds to the parameter name and value respectively.\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"params\": {\n \"someOtherProperty\": \"someValue\",\n \"myCustomProperty\": \"myValue\"\n }\n }\n\n\n"
7546
7634
  },
7547
7635
  "url": {
7548
- "format": "uri",
7549
7636
  "type": "string",
7550
- "fieldDescription": "\n\nSpecifies the URL targeted by the report. The URL is relative to the add-on's base URL.\n\n"
7551
- },
7552
- "thumbnailUrl": {
7553
- "format": "uri",
7554
- "type": "string",
7555
- "fieldDescription": "\n\nSpecifies the URL of the report thumbnail. The URL is relative to the add-on's base URL.\n\n"
7556
- },
7557
- "key": {
7558
- "$ref": "#/definitions/ModuleKeySchema"
7559
- }
7560
- },
7561
- "required": [
7562
- "key"
7563
- ]
7564
- },
7565
- "minItems": 1
7566
- },
7567
- "connect-jira:jiraProjectPages": {
7568
- "type": "array",
7569
- "items": {
7570
- "properties": {
7571
- "name": {
7572
- "$ref": "#/definitions/i18nProperty",
7573
- "fieldDescription": "\n\nA human readable name.\n\n"
7574
- },
7575
- "weight": {
7576
- "type": "integer",
7577
- "fieldDescription": "\n\nSpecifies the ordering of the link in the project sidebar.\n\n <p>The \"lightest\" weight (i.e., lowest number) appears first, rising relative to other items, while the \"heaviest\"\n weights sink to the bottom of the menu or list.</p>\n\n",
7578
- "defaultValue": "100"
7579
- },
7580
- "iconUrl": {
7581
- "format": "uri",
7582
- "type": "string",
7583
- "fieldDescription": "\n\nSpecifies an icon URL that will displayed alongside the link to the project page in the project sidebar.\n\n The icon resource provided in this field should be larger or equals to 16x16 pixels.<br>\n\n"
7584
- },
7585
- "conditions": {
7586
- "items": {
7587
- "type": "object",
7588
- "anyOf": [
7589
- {
7590
- "$ref": "#/definitions/compositeCondition"
7591
- },
7592
- {
7593
- "$ref": "#/definitions/singleCondition"
7594
- }
7595
- ]
7596
- },
7597
- "type": "array",
7598
- "fieldDescription": "\n\n<a href=\"../../conditions/\">Conditions</a> can be added to display only when all the given conditions are true.\n\n"
7599
- },
7600
- "url": {
7601
- "format": "uri",
7602
- "type": "string",
7603
- "fieldDescription": "\n\nSpecifies the URL targeted by the page. The URL is relative to the add-on's base URL.\n\n"
7604
- },
7605
- "key": {
7606
- "$ref": "#/definitions/ModuleKeySchema"
7607
- }
7608
- },
7609
- "required": [
7610
- "key"
7611
- ]
7612
- },
7613
- "minItems": 1
7614
- },
7615
- "connect-jira:jiraSearchRequestViews": {
7616
- "type": "array",
7617
- "items": {
7618
- "properties": {
7619
- "name": {
7620
- "$ref": "#/definitions/i18nProperty",
7621
- "fieldDescription": "\n\nA human readable name.\n\n"
7622
- },
7623
- "weight": {
7624
- "type": "integer",
7625
- "fieldDescription": "\n\nDetermines the order in which the Search Request View entry appears in the <em>Export</em> menu.\n\n The \"lightest\" weight (i.e., lowest number) appears first, rising relative to other items,\n while the \"heaviest\" weights sink to the bottom of the menu or list.\n\n"
7626
- },
7627
- "description": {
7628
- "$ref": "#/definitions/i18nProperty",
7629
- "fieldDescription": "\n\nA description of your Search Request View\n\n"
7630
- },
7631
- "conditions": {
7632
- "items": {
7633
- "type": "object",
7634
- "anyOf": [
7635
- {
7636
- "$ref": "#/definitions/singleCondition"
7637
- },
7638
- {
7639
- "$ref": "#/definitions/compositeCondition"
7640
- }
7641
- ]
7642
- },
7643
- "type": "array",
7644
- "fieldDescription": "\n\n<a href=\"../../conditions/\">Conditions</a> can be added to display only when all the given conditions are true.\n\n"
7645
- },
7646
- "params": {
7647
- "additionalProperties": true,
7648
- "type": "object",
7649
- "fieldTitle": "Object",
7650
- "fieldDescription": "\n\nThis object represents a map of key/value pairs, where each property name and value corresponds to the parameter name and value respectively.\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"params\": {\n \"someOtherProperty\": \"someValue\",\n \"myCustomProperty\": \"myValue\"\n }\n }\n\n\n"
7651
- },
7652
- "url": {
7653
- "type": "string",
7654
- "fieldDescription": "\n\nThe URL of the service that will render the representation for the result set. The URL is\n interpreted relative to the <em>baseUrl</em> in the descriptor.\n\n"
7655
- },
7656
- "key": {
7657
- "$ref": "#/definitions/ModuleKeySchema"
7658
- }
7659
- },
7660
- "required": [
7661
- "key"
7662
- ]
7663
- },
7664
- "minItems": 1
7665
- },
7666
- "connect-jira:jiraDashboardItems": {
7667
- "type": "array",
7668
- "items": {
7669
- "properties": {
7670
- "name": {
7671
- "$ref": "#/definitions/i18nProperty",
7672
- "fieldDescription": "\n\nA human readable name.\n\n"
7673
- },
7674
- "description": {
7675
- "$ref": "#/definitions/i18nProperty",
7676
- "fieldDescription": "\n\nDescription of the dashboard item. This will be displayed for a user in the directory.\n\n"
7677
- },
7678
- "conditions": {
7679
- "items": {
7680
- "type": "object",
7681
- "anyOf": [
7682
- {
7683
- "$ref": "#/definitions/compositeCondition"
7684
- },
7685
- {
7686
- "$ref": "#/definitions/singleCondition"
7687
- }
7688
- ]
7689
- },
7690
- "type": "array",
7691
- "fieldDescription": "\n\n<a href=\"../../conditions/\">Conditions</a> can be added to display only when all the given conditions are true.\n\n"
7692
- },
7693
- "url": {
7694
- "format": "uri",
7695
- "type": "string",
7696
- "fieldDescription": "\n\nThe URL of the service which will render the dashboard item. Following context parameters are supported in\n url.\n\n * `dashboard.id` unique id of the dashboard on which the item is rendered. This parameter is passed only on default view\n * `dashboardItem.id` unique id of the dashboard item which is rendered. This parameter is passed only on default view\n * `dashboardItem.key` key of the dashboard item. This parameter is passed in both: default and directory view\n * `dashboardItem.viewType` type of the view in which dashboard item is displayed. Default (for dashboard) and directory. This list may be extended\n\n"
7697
- },
7698
- "configurable": {
7699
- "type": "boolean",
7700
- "fieldDescription": "\n\nSpecify if the dashboard-item is configurable or not. Configurable dashboard items should render configuration\n view if there is no configuration stored for the dashboard item. [Dashboard item properties](../../jira-rest-api-scopes/) can\n be used for configuration storage.\n\n In addition, configurable dashboard items should register a javascript callback for `edit click`.\n\n AP.require(['jira'], function (jira) {\n jira.DashboardItem.onDashboardItemEdit(function() {\n // render dashboard item configuration now\n });\n });\n\n It is a common case to give users ability to set the name of the dashboard item. This can be achieved with a following\n JS code:\n\n AP.require(['jira'], function(jira) {\n jira.setDashboardItemTitle(\"Setting title works\");\n });\n\n",
7701
- "defaultValue": "false"
7702
- },
7703
- "thumbnailUrl": {
7704
- "format": "uri",
7705
- "type": "string",
7706
- "fieldDescription": "\n\nURI of the dashboard item thumbnail which is displayed in the directory.\n\n"
7707
- },
7708
- "key": {
7709
- "$ref": "#/definitions/ModuleKeySchema"
7710
- }
7711
- },
7712
- "required": [
7713
- "key"
7714
- ]
7715
- },
7716
- "minItems": 1
7717
- },
7718
- "connect-jira:jiraWorkflowPostFunctions": {
7719
- "type": "array",
7720
- "items": {
7721
- "properties": {
7722
- "view": {
7723
- "$ref": "#/definitions/url",
7724
- "fieldDescription": "\n\nThe relative URL to the add-on page that shows the read-only configuration or summary of the workflow post\n function.\n\n The view URL can contain the following context parameters:\n\n - `postFunction.id`: The unique identifier of the post function\n - `postFunction.config`: The configuration value saved to Jira after calling `WorkflowConfiguration.onSave`\n\n"
7725
- },
7726
- "triggered": {
7727
- "$ref": "#/definitions/url",
7728
- "fieldDescription": "\n\nThe relative URL to the add-on resource that receives the HTTP POST after a workflow transition.\n It includes the authentication headers that enable the add-on to validate the authenticity of the request.\n\n Your app must return a success status code in response to the HTTP POST request.\n If your app doesn't send a success status code the request will retry,\n as described in the [webhook retry policy](../../webhooks#retry-policy).\n\n <h3>Contents of the HTTP POST</h3>\n\n To understand the type of content that is sent to the add-on after a state transition, you can use the Connect\n inspector tool. The [Connect inspector](http://go.atlassian.com/connect-inspector) is a service that lets you\n generate a temporary Atlassian Connect add-on that you can install in your Cloud development environment to inspect\n the content of event messages.\n\n Here is an example POST body. For brevity, some fields have been removed or truncated.\n\n {\n \"configuration\": {\n \"value\": \"Configuration from the post function edit page\"\n },\n \"issue\": {\n \"fields\": {\n \"assignee\": { },\n \"attachment\": [],\n \"comment\": { },\n \"components\": [],\n \"created\": \"2013-11-18T17:56:23.864+1100\",\n \"description\": null,\n \"duedate\": null,\n \"environment\": null,\n \"fixVersions\": [],\n \"issuetype\": { },\n \"labels\": [],\n \"lastViewed\": \"2013-11-18T17:56:31.793+1100\",\n \"priority\": { },\n \"project\": {\n \"avatarUrls\": { },\n \"id\": \"10000\",\n \"key\": \"TEST\",\n \"name\": \"Test\"\n },\n \"reporter\": { },\n \"resolution\": { },\n \"resolutiondate\": \"2013-11-18T17:56:31.799+1100\",\n \"status\": { },\n \"summary\": \"The issue summary\",\n \"updated\": \"2013-11-18T17:56:23.864+1100\",\n \"versions\": [],\n \"votes\": { },\n \"watches\": { },\n \"workratio\": -1\n },\n \"id\": \"10000\",\n \"key\": \"TEST-1\",\n \"self\": \"http://issues.example.com/jira/issue/10000\"\n },\n \"transition\": {\n \"from_status\": \"Open\",\n \"to_status\": \"Resolved\",\n \"transitionId\": 5,\n \"transitionName\": \"Resolve Issue\",\n \"workflowId\": 10000,\n \"workflowName\": \"classic default workflow\"\n }\n }\n\n"
7729
- },
7730
- "edit": {
7731
- "$ref": "#/definitions/url",
7732
- "fieldDescription": "\n\nThe relative URL to the add-on page that allows to configure the workflow post function once it exists.\n\n The edit URL can contain the following context parameters:\n\n - `postFunction.id`: The unique identifier of the post function\n - `postFunction.config`: The configuration value saved to Jira after calling `WorkflowConfiguration.onSave`\n\n"
7733
- },
7734
- "name": {
7735
- "$ref": "#/definitions/i18nProperty",
7736
- "fieldDescription": "\n\nA human readable name.\n\n"
7737
- },
7738
- "description": {
7739
- "$ref": "#/definitions/i18nProperty",
7740
- "fieldDescription": "\n\nThe description of the workflow post function. This will be presented to the user when they add a new post\n function to a Jira workflow.\n\n"
7741
- },
7742
- "create": {
7743
- "$ref": "#/definitions/url",
7744
- "fieldDescription": "\n\nThe relative URL to the add-on page that allows to configure the workflow post function on creation.\n\n"
7637
+ "fieldDescription": "\n\nThe URL of the service that will render the representation for the result set. The URL is\n interpreted relative to the <em>baseUrl</em> in the descriptor.\n\n"
7745
7638
  },
7746
7639
  "key": {
7747
7640
  "$ref": "#/definitions/ModuleKeySchema"
@@ -7851,185 +7744,22 @@
7851
7744
  },
7852
7745
  "minItems": 1
7853
7746
  },
7854
- "connect-jira:jiraIssueContents": {
7747
+ "connect-jira:jiraIssueTabPanels": {
7855
7748
  "type": "array",
7856
7749
  "items": {
7857
7750
  "properties": {
7858
- "icon": {
7859
- "$ref": "#/definitions/icon",
7860
- "fieldDescription": "\n\nSpecifies an icon to show alongside the quick-add menu item.\n The icon should be 24x24 pixels or larger, preferably in .SVG format.\n\n"
7861
- },
7862
- "tooltip": {
7863
- "$ref": "#/definitions/i18nProperty",
7864
- "fieldDescription": "\n\nSpecifies a tooltip for the quick-add menu item.\n\n"
7865
- },
7866
7751
  "name": {
7867
7752
  "$ref": "#/definitions/i18nProperty",
7868
7753
  "fieldDescription": "\n\nA human readable name.\n\n"
7869
7754
  },
7870
- "conditions": {
7871
- "items": {
7872
- "type": "object",
7873
- "anyOf": [
7874
- {
7875
- "$ref": "#/definitions/compositeCondition"
7876
- },
7877
- {
7878
- "$ref": "#/definitions/singleCondition"
7879
- }
7880
- ]
7881
- },
7882
- "type": "array",
7883
- "fieldDescription": "\n\n<a href=\"../../conditions/\">Conditions</a> can be added to display only when all the given conditions are true.\n\n"
7884
- },
7885
- "target": {
7886
- "type": "object",
7887
- "fieldDescription": "\n\nSpecifies the target of this content as a result of clicking on the menu item. Currently,\n you can only display a web panel in the issue's content area.\n\n Read about [Issue Page Target Web Panel](/cloud/jira/platform/modules/issue-page-target-web-panel/).\n\n",
7888
- "properties": {
7889
- "type": {
7890
- "enum": [
7891
- "web_panel",
7892
- "WEB_PANEL"
7893
- ],
7894
- "type": "string",
7895
- "fieldDescription": "\n\nThe type field must be set to 'web_panel'\n\n"
7896
- },
7897
- "url": {
7898
- "format": "uri",
7899
- "type": "string",
7900
- "fieldDescription": "\n\nThe URL of the add-on resource that provides the web panel content.\n This URL must be relative to the app's baseUrl.\n\n"
7901
- }
7902
- },
7903
- "required": [
7904
- "type",
7905
- "url"
7906
- ],
7907
- "shortClassName": "issuePageTargetWebPanelBean",
7908
- "title": "Issue Page Target Web Panel",
7909
- "description": "\n\nDescribes the target of the issue content module. Supports displaying a web panel in the content area of the issue view.\n\n"
7755
+ "weight": {
7756
+ "type": "integer",
7757
+ "fieldDescription": "\n\n<p>Determines the order in which the tab panel's link appears in the menu or list.</p>\n\n <p>The \"lightest\" weight (i.e., lowest number) appears first, rising relative to other items,\n while the \"heaviest\" weights sink to the bottom of the menu or list.</p>\n\n <p>Built-in web items have weights that are incremented by numbers that leave room for additional\n items, such as by 10 or 100. Be mindful of the weight you choose for your item, so that it appears\n in a sensible order given existing items.</p>\n\n"
7910
7758
  },
7911
- "contentPresentConditions": {
7759
+ "conditions": {
7912
7760
  "items": {
7913
7761
  "type": "object",
7914
7762
  "anyOf": [
7915
- {
7916
- "$ref": "#/definitions/compositeCondition"
7917
- },
7918
- {
7919
- "$ref": "#/definitions/singleCondition"
7920
- }
7921
- ]
7922
- },
7923
- "type": "array",
7924
- "fieldDescription": "\n\nSpecifies a list of [Conditions](/cloud/jira/platform/conditions/) that, when resolved to true, will\n force the content to always be displayed for that issue. Users have the ability to collapse the content\n if they don't want to see it.\n\n"
7925
- },
7926
- "jiraNativeAppsEnabled": {
7927
- "type": "boolean",
7928
- "fieldDescription": "\n\nThis is coming soon. We will update the docs here with the minimum supported Jira iOS and Android app versions\n when it is ready.\n\n Specifies whether the issue content module will be shown in the Jira mobile and desktop clients.\n\n",
7929
- "defaultValue": "false"
7930
- },
7931
- "key": {
7932
- "$ref": "#/definitions/ModuleKeySchema"
7933
- }
7934
- },
7935
- "required": [
7936
- "key"
7937
- ]
7938
- },
7939
- "minItems": 1
7940
- },
7941
- "connect-jira:jiraDevelopmentTool": {
7942
- "type": "array",
7943
- "items": {
7944
- "properties": {
7945
- "capabilities": {
7946
- "items": {
7947
- "enum": [
7948
- "commit",
7949
- "COMMIT",
7950
- "branch",
7951
- "BRANCH",
7952
- "pull_request",
7953
- "PULL_REQUEST"
7954
- ],
7955
- "type": "string"
7956
- },
7957
- "type": "array",
7958
- "fieldDescription": "\n\nWhat development information the tool offers\n\n"
7959
- },
7960
- "application": {
7961
- "$ref": "#/definitions/i18nProperty",
7962
- "fieldDescription": "\n\nThe application behind this development tool\n\n"
7963
- },
7964
- "name": {
7965
- "$ref": "#/definitions/i18nProperty",
7966
- "fieldDescription": "\n\nA human readable name.\n\n"
7967
- },
7968
- "actions": {
7969
- "$ref": "#/definitions/developmentToolModuleActionsBean",
7970
- "fieldDescription": "\n\nOptional actions that can be performed by Jira users, e.g., create branch, etc.\n\n"
7971
- },
7972
- "url": {
7973
- "type": "string",
7974
- "fieldDescription": "\n\nA URL to the development tool\n\n"
7975
- },
7976
- "logoUrl": {
7977
- "type": "string",
7978
- "fieldDescription": "\n\nThe logo for the development tool, will be displayed in an area 16 by 16 pixels\n\n"
7979
- },
7980
- "key": {
7981
- "$ref": "#/definitions/ModuleKeySchema"
7982
- }
7983
- },
7984
- "required": [
7985
- "key"
7986
- ]
7987
- },
7988
- "minItems": 1
7989
- },
7990
- "connect-jira:jiraProjectTabPanels": {
7991
- "type": "array",
7992
- "items": {
7993
- "properties": {
7994
- "name": {
7995
- "$ref": "#/definitions/i18nProperty",
7996
- "fieldDescription": "\n\nA human readable name.\n\n"
7997
- },
7998
- "weight": {
7999
- "type": "integer",
8000
- "fieldDescription": "\n\n<p>Determines the order in which the tab panel's link appears in the menu or list.</p>\n\n <p>The \"lightest\" weight (i.e., lowest number) appears first, rising relative to other items,\n while the \"heaviest\" weights sink to the bottom of the menu or list.</p>\n\n <p>Built-in web items have weights that are incremented by numbers that leave room for additional\n items, such as by 10 or 100. Be mindful of the weight you choose for your item, so that it appears\n in a sensible order given existing items.</p>\n\n"
8001
- },
8002
- "conditions": {
8003
- "items": {
8004
- "type": "object",
8005
- "anyOf": [
8006
- {
8007
- "properties": {
8008
- "condition": {
8009
- "maxLength": 100,
8010
- "type": "string",
8011
- "fieldDescription": "\n\nA string indicating the name of the condition\n\n"
8012
- },
8013
- "invert": {
8014
- "type": "boolean",
8015
- "fieldDescription": "\n\nA flag indicating whether to invert the boolean result of the condition.\n\n",
8016
- "defaultValue": "false"
8017
- },
8018
- "params": {
8019
- "additionalProperties": true,
8020
- "type": "object",
8021
- "fieldTitle": "Object",
8022
- "fieldDescription": "\n\nThis object represents a map of key/value pairs, where each property name and value corresponds to the parameter name and value respectively.\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"params\": {\n \"someOtherProperty\": \"someValue\",\n \"myCustomProperty\": \"myValue\"\n }\n }\n\n\n"
8023
- }
8024
- },
8025
- "required": [
8026
- "condition"
8027
- ],
8028
- "shortClassName": "singleConditionBean",
8029
- "type": "object",
8030
- "title": "Single Condition",
8031
- "description": "\n\nSingle Conditions are either provided by the host application. See the complete documentation of\n [Conditions](../../conditions/) for more information.\n\n To invert a condition, add the attribute ``invert=\"true\"`` to the condition element.\n This is useful where you want to show the section if a certain condition is not satisfied.\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"condition\": \"user_is_logged_in\",\n \"invert\": false\n }\n\n\n"
8032
- },
8033
7763
  {
8034
7764
  "properties": {
8035
7765
  "conditions": {
@@ -8092,6 +7822,33 @@
8092
7822
  "type": "object",
8093
7823
  "title": "Composite Condition",
8094
7824
  "description": "\n\nComposite Conditions are composed of a collection of [Single Condition](../single-condition/) / Composite Conditions\n and a type attribute.\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"conditions\": [\n {\n \"or\": [\n {\n \"condition\": \"can_attach_file_to_issue\",\n \"invert\": false\n },\n {\n \"condition\": \"is_issue_assigned_to_current_user\",\n \"invert\": false\n }\n ]\n },\n {\n \"condition\": \"user_is_logged_in\",\n \"invert\": false\n }\n ]\n }\n\n\n"
7825
+ },
7826
+ {
7827
+ "properties": {
7828
+ "condition": {
7829
+ "maxLength": 100,
7830
+ "type": "string",
7831
+ "fieldDescription": "\n\nA string indicating the name of the condition\n\n"
7832
+ },
7833
+ "invert": {
7834
+ "type": "boolean",
7835
+ "fieldDescription": "\n\nA flag indicating whether to invert the boolean result of the condition.\n\n",
7836
+ "defaultValue": "false"
7837
+ },
7838
+ "params": {
7839
+ "additionalProperties": true,
7840
+ "type": "object",
7841
+ "fieldTitle": "Object",
7842
+ "fieldDescription": "\n\nThis object represents a map of key/value pairs, where each property name and value corresponds to the parameter name and value respectively.\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"params\": {\n \"someOtherProperty\": \"someValue\",\n \"myCustomProperty\": \"myValue\"\n }\n }\n\n\n"
7843
+ }
7844
+ },
7845
+ "required": [
7846
+ "condition"
7847
+ ],
7848
+ "shortClassName": "singleConditionBean",
7849
+ "type": "object",
7850
+ "title": "Single Condition",
7851
+ "description": "\n\nSingle Conditions are either provided by the host application. See the complete documentation of\n [Conditions](../../conditions/) for more information.\n\n To invert a condition, add the attribute ``invert=\"true\"`` to the condition element.\n This is useful where you want to show the section if a certain condition is not satisfied.\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"condition\": \"user_is_logged_in\",\n \"invert\": false\n }\n\n\n"
8095
7852
  }
8096
7853
  ]
8097
7854
  },
@@ -8119,37 +7876,32 @@
8119
7876
  },
8120
7877
  "minItems": 1
8121
7878
  },
8122
- "connect-jira:jiraGlobalPermissions": {
7879
+ "connect-jira:jiraBuildInfoProvider": {
8123
7880
  "type": "array",
8124
7881
  "items": {
8125
7882
  "properties": {
8126
- "defaultGrants": {
8127
- "items": {
8128
- "enum": [
8129
- "none",
8130
- "NONE",
8131
- "jira-administrators",
8132
- "JIRA-ADMINISTRATORS",
8133
- "all",
8134
- "ALL"
8135
- ],
8136
- "type": "string"
8137
- },
8138
- "type": "array",
8139
- "fieldDescription": "\n\nSpecifies group of users that will be granted this permissions when the add-on is first installed.\n\n Allowed values:\n\n * `NONE` - Permission will not be granted to anyone by default\n * `ALL` - If `anonymousAllowed` is set to true, every user, both logged in and anonymous, will be granted the permission.\n Otherwise, permission will be granted to every user with application role assigned.\n * `JIRA-ADMINISTRATORS` - Every user with jira administration permission will be granted this permission.\n\n"
7883
+ "homeUrl": {
7884
+ "type": "string",
7885
+ "fieldDescription": "\n\nURL to the provider's homepage\n\n"
7886
+ },
7887
+ "documentationUrl": {
7888
+ "type": "string",
7889
+ "fieldDescription": "\n\nOptional URL to documentation about the provider's Jira integration\n\n"
8140
7890
  },
8141
7891
  "name": {
8142
7892
  "$ref": "#/definitions/i18nProperty",
8143
7893
  "fieldDescription": "\n\nA human readable name.\n\n"
8144
7894
  },
8145
- "description": {
8146
- "$ref": "#/definitions/i18nProperty",
8147
- "fieldDescription": "\n\nDescription of the global permission. It will be displayed under the permission's name.\n\n"
7895
+ "actions": {
7896
+ "properties": {},
7897
+ "shortClassName": "buildProviderAllActionsBean",
7898
+ "type": "object",
7899
+ "description": "\n\n<p>Build actions that can be performed by Jira users.</p>\n <p>Currently there are no actions defined for build providers. Please contact us if you need any.</p>\n\n",
7900
+ "fieldDescription": "\n\nOptional actions that can be performed by Jira users\n\n"
8148
7901
  },
8149
- "anonymousAllowed": {
8150
- "type": "boolean",
8151
- "fieldDescription": "\n\nSpecifies if this permission can be granted to anonymous users.\n\n",
8152
- "defaultValue": "true"
7902
+ "logoUrl": {
7903
+ "type": "string",
7904
+ "fieldDescription": "\n\nOptional URL to the provider's logo, which will be displayed in the UI\n\n"
8153
7905
  },
8154
7906
  "key": {
8155
7907
  "$ref": "#/definitions/ModuleKeySchema"
@@ -8161,68 +7913,31 @@
8161
7913
  },
8162
7914
  "minItems": 1
8163
7915
  },
8164
- "connect-jira:jiraIssueFields": {
7916
+ "connect-jira:jiraWorkflowConditions": {
8165
7917
  "type": "array",
8166
7918
  "items": {
8167
7919
  "properties": {
8168
- "template": {
8169
- "properties": {
8170
- "type": {
8171
- "enum": [
8172
- "link",
8173
- "LINK"
8174
- ],
8175
- "type": "string",
8176
- "fieldDescription": "\n\nType of the template.\n\n"
8177
- },
8178
- "url": {
8179
- "type": "string",
8180
- "fieldDescription": "\n\n<p>\n If the type is 'link' then this specifies the URL template for the link.\n It is possible to use <a href=\"../../context-parameters/\">context parameters</a> in the template.\n </p>\n\n <p>\n The URL may be relative or absolute. If it is the former, then the Jira context path will be prepended automatically.\n </p>\n\n <p>\n The following context parameters are available:\n <ul>\n <li>option.id, option.key, option.properties</li>\n <li>issue.id, issue.key</li>\n <li>project.id, project.key</li>\n <li>user.id (deprecated), user.name (deprecated), user.accountId</li>\n </ul>\n\n"
8181
- }
8182
- },
8183
- "required": [
8184
- "type",
8185
- "url"
8186
- ],
8187
- "shortClassName": "issueFieldTemplateBean",
8188
- "type": "object",
8189
- "title": "Issue Field Template",
8190
- "description": "\n\nDefines the template used to render issue field options in the UI view.\n\n",
8191
- "fieldDescription": "\n\nThe template used to render options. This is only valid when the `type` is `single_select` or `multi_select`.\n\n"
7920
+ "view": {
7921
+ "$ref": "#/definitions/url",
7922
+ "fieldDescription": "\n\nThe relative URL to the app page that shows the read-only configuration or summary of the workflow condition.\n\n The view URL can contain the following context parameters:\n\n - `condition.id`: The unique identifier of the condition.\n - `condition.config`: The configuration value saved to Jira after calling `WorkflowConfiguration.onSave`.\n\n"
8192
7923
  },
8193
- "property": {
8194
- "properties": {
8195
- "path": {
8196
- "type": "string",
8197
- "fieldDescription": "\n\nThe path to the value in the JSON object.\n\n For instance, for JSON <code>\"{\"label\": {\"color\": \"red\", \"text\":\"connect\"}}</code> the valid path\n referencing the color is <code>label.color</code>.\n\n"
8198
- },
8199
- "type": {
8200
- "enum": [
8201
- "number",
8202
- "NUMBER",
8203
- "string",
8204
- "STRING",
8205
- "date",
8206
- "DATE"
8207
- ],
8208
- "type": "string",
8209
- "fieldDescription": "\n\nThe type of the referenced value. It will affect how the value is interpreted and displayed,\n and how the field behaves in JQL.\n\n The type can be one of the following:\n\n * `number`, which is displayed as a number and allows the range ordering and searching on this field.\n * `string`, which supports a string, for example <code>\"example text\"</code>, and a list of strings, for example <code>[\"example text1\", \"example text2\"]</code>.\n The string is displayed as is and enables a search for matching phrases. The list is displayed as comma-separated values and enables a search for matches to any phrase from the list.\n * `date`, which is displayed as a date with time and allows date-based searching.\n\n The value is expected to be a date string in one of the following formats:\n * [YYYY]-[MM]-[DD]\n * [YYYY]-[MM]-[DD]T[hh]:[mm]Z\n * [YYYY]-[MM]-[DD]T[hh]:[mm]+[hh]:[mm]\n * [YYYY]-[MM]-[DD]T[hh]:[mm]-[hh]:[mm]\n\n See [ISO_8601 standard](http://www.w3.org/TR/NOTE-datetime) for reference.\n\n"
8210
- },
8211
- "key": {
8212
- "type": "string",
8213
- "fieldDescription": "\n\nThe key of the issue property.\n\n"
8214
- }
8215
- },
8216
- "required": [
8217
- "path",
8218
- "type",
8219
- "key"
7924
+ "expression": {
7925
+ "type": "string",
7926
+ "fieldDescription": "\n\nThe [Jira expression](https://developer.atlassian.com/cloud/jira/platform/rest/v3/#api-api-3-expression-eval-post)\n used to evaluate the condition. Must return a boolean value.\n <p>\n This expression can be overridden using the configuration page.\n If you return configuration with property \"expression\", then that expression will be used\n to evaluate the condition instead of the expression defined here. For example:\n\n <pre><code>AP.require([\"jira\"], function(jira) {\n jira.WorkflowConfiguration.onSave(function() {\n var config = {\n \"expression\": \"dynamically built expression\"\n };\n return JSON.stringify(config);\n });\n});</code></pre>\n\n"
7927
+ },
7928
+ "edit": {
7929
+ "$ref": "#/definitions/url",
7930
+ "fieldDescription": "\n\nThe relative URL to the app page that allows to configure the workflow condition once it exists.\n\n The edit URL can contain the following context parameters:\n\n - `condition.id`: The unique identifier of the condition.\n - `condition.config`: The configuration value saved to Jira after calling `WorkflowConfiguration.onSave`.\n\n"
7931
+ },
7932
+ "evaluationContext": {
7933
+ "enum": [
7934
+ "user",
7935
+ "USER",
7936
+ "app",
7937
+ "APP"
8220
7938
  ],
8221
- "shortClassName": "issueFieldPropertyBean",
8222
- "type": "object",
8223
- "title": "Issue Field Property",
8224
- "description": "\n\nDefines an issue property that will store the value for the issue field of the `read_only` type.\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"path\": \"comments.count\",\n \"key\": \"statistics\",\n \"type\": \"number\"\n }\n\n\n",
8225
- "fieldDescription": "\n\nThe property that stores the field value.\n\n Required when the `type` is `read_only`, otherwise not used.\n\n"
7939
+ "type": "string",
7940
+ "fieldDescription": "\n\nEXPERIMENTAL. Controls how to run the expression during the transition.\n\n - `user`: The expression will be evaluated in the context of the user making the transition (default).\n - `app`: The expression will be evaluated in the context of the app user.\n\n If the expression needs to perform some operations which require permissions that the user making\n the transition might not have, choose `app` and make sure that your app has appropriate scopes.\n\n Note: regardless of the value selected here, the `user` variable in the expression always points to the user that performs the transition.\n\n"
8226
7941
  },
8227
7942
  "name": {
8228
7943
  "$ref": "#/definitions/i18nProperty",
@@ -8230,67 +7945,550 @@
8230
7945
  },
8231
7946
  "description": {
8232
7947
  "$ref": "#/definitions/i18nProperty",
8233
- "fieldDescription": "\n\nDescription of the issue field. This will be displayed for the user under the field in the create or edit issue view.\n\n"
7948
+ "fieldDescription": "\n\nThe description of the workflow condition. This will be presented to the user when they add a new condition to a Jira workflow.\n\n"
8234
7949
  },
8235
- "type": {
7950
+ "create": {
7951
+ "$ref": "#/definitions/url",
7952
+ "fieldDescription": "\n\nThe relative URL to the app page that allows to configure the workflow condition on creation.\n\n"
7953
+ },
7954
+ "key": {
7955
+ "$ref": "#/definitions/ModuleKeySchema"
7956
+ }
7957
+ },
7958
+ "required": [
7959
+ "key"
7960
+ ]
7961
+ },
7962
+ "minItems": 1
7963
+ },
7964
+ "connect-jira:jiraProjectAdminTabPanels": {
7965
+ "type": "array",
7966
+ "items": {
7967
+ "properties": {
7968
+ "name": {
7969
+ "$ref": "#/definitions/i18nProperty",
7970
+ "fieldDescription": "\n\nA human readable name.\n\n"
7971
+ },
7972
+ "weight": {
7973
+ "type": "integer",
7974
+ "fieldDescription": "\n\n<p>Determines the order in which the tab panel's link appears in the menu or list.</p>\n\n <p>The \"lightest\" weight (i.e., lowest number) appears first, rising relative to other items,\n while the \"heaviest\" weights sink to the bottom of the menu or list.</p>\n\n <p>Built-in web items have weights that are incremented by numbers that leave room for additional\n items, such as by 10 or 100. Be mindful of the weight you choose for your item, so that it appears\n in a sensible order given existing items.</p>\n\n"
7975
+ },
7976
+ "location": {
7977
+ "type": "string",
7978
+ "fieldDescription": "\n\nThe name of the group of tabs in the project configuration where the tab panel should appear.\n The following are accepted values.\n\n * `projectgroup1`\n * `projectgroup2`\n * `projectgroup3`\n * `projectgroup4`\n\nSee [Project Configuration Locations](https://developer.atlassian.com/jiradev/jira-architecture/web-fragments/project-configuration-locations#ProjectConfigurationLocations-AddingNewItemstoExistingWebSections) for details.\n\n"
7979
+ },
7980
+ "conditions": {
7981
+ "items": {
7982
+ "type": "object",
7983
+ "anyOf": [
7984
+ {
7985
+ "$ref": "#/definitions/singleCondition"
7986
+ },
7987
+ {
7988
+ "$ref": "#/definitions/compositeCondition"
7989
+ }
7990
+ ]
7991
+ },
7992
+ "type": "array",
7993
+ "fieldDescription": "\n\n<a href=\"../../conditions/\">Conditions</a> can be added to display only when all the given conditions are true.\n\n"
7994
+ },
7995
+ "params": {
7996
+ "additionalProperties": true,
7997
+ "type": "object",
7998
+ "fieldTitle": "Object",
7999
+ "fieldDescription": "\n\nThis object represents a map of key/value pairs, where each property name and value corresponds to the parameter name and value respectively.\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"params\": {\n \"someOtherProperty\": \"someValue\",\n \"myCustomProperty\": \"myValue\"\n }\n }\n\n\n"
8000
+ },
8001
+ "url": {
8002
+ "format": "uri",
8003
+ "type": "string",
8004
+ "fieldDescription": "\n\nSpecifies the URL targeted by the tab panel. The URL is relative to the add-on's base URL.\n\n"
8005
+ },
8006
+ "key": {
8007
+ "$ref": "#/definitions/ModuleKeySchema"
8008
+ }
8009
+ },
8010
+ "required": [
8011
+ "key"
8012
+ ]
8013
+ },
8014
+ "minItems": 1
8015
+ },
8016
+ "connect-jira:jiraWorkflowValidators": {
8017
+ "type": "array",
8018
+ "items": {
8019
+ "properties": {
8020
+ "view": {
8021
+ "$ref": "#/definitions/url",
8022
+ "fieldDescription": "\n\nThe relative URL to the app page that shows the read-only configuration or summary of the workflow validator.\n\n The view URL can contain the following context parameters:\n\n - `validator.id`: The unique identifier of the validator.\n - `validator.config`: The configuration value saved to Jira after calling `WorkflowConfiguration.onSave`.\n\n"
8023
+ },
8024
+ "expression": {
8025
+ "type": "string",
8026
+ "fieldDescription": "\n\nThe [Jira expression](https://developer.atlassian.com/cloud/jira/platform/rest/v3/#api-api-3-expression-eval-post)\n used to evaluate the validator. Must return a boolean or string value.\n <p>\n This expression can be overridden using the configuration page.\n If you return configuration with property \"expression\", then that expression will be used\n to evaluate the validator instead of the expression defined here. For example:\n\n <pre><code>AP.require([\"jira\"], function(jira) {\n jira.WorkflowConfiguration.onSave(function() {\n var config = {\n \"expression\": \"dynamically built expression\"\n };\n return JSON.stringify(config);\n });\n});</code></pre>\n\n"
8027
+ },
8028
+ "edit": {
8029
+ "$ref": "#/definitions/url",
8030
+ "fieldDescription": "\n\nThe relative URL to the app page that allows to configure the workflow validator once it exists.\n\n The edit URL can contain the following context parameters:\n\n - `validator.id`: The unique identifier of the validator.\n - `validator.config`: The configuration value saved to Jira after calling `WorkflowConfiguration.onSave`.\n\n"
8031
+ },
8032
+ "evaluationContext": {
8236
8033
  "enum": [
8237
- "string",
8238
- "STRING",
8239
- "text",
8240
- "TEXT",
8241
- "rich_text",
8242
- "RICH_TEXT",
8243
- "single_select",
8244
- "SINGLE_SELECT",
8245
- "multi_select",
8246
- "MULTI_SELECT",
8247
- "number",
8248
- "NUMBER",
8249
- "read_only",
8250
- "READ_ONLY"
8034
+ "user",
8035
+ "USER",
8036
+ "app",
8037
+ "APP"
8251
8038
  ],
8252
8039
  "type": "string",
8253
- "fieldDescription": "\n\nThe type of the field. The following types are available:\n\n * `number` Allows to set a number.\n * `string` Allows to set a string, supports exact matches in JQL.\n * `text` Allows to set a string, supports fuzzy search in JQL (with the \"~\" operator).\n * `rich_text` Allows to set multi-line text in Jira, and supports fuzzy search in JQL. Note: If you migrate from `text` to `rich_text` for an already existing field, the data won't be migrated.\n * `single_select` Allows to select one value from a predefined set. The [Issue field options](/cloud/jira/platform/rest/v2/#api-group-Issue-field-options) REST API can be user to manage available values.\n * `multi_select` Allows to select multiple values from a predefined set. The [Issue field options](/cloud/jira/platform/rest/v2/#api-group-Issue-field-options) REST API can be used to manage available values.\n * `read_only` Displays a given issue property, not editable by users.\n\n"
8040
+ "fieldDescription": "\n\nEXPERIMENTAL. Controls how the expression is run during the transition:\n\n - `user`: The expression is evaluated in the context of the user making the transition (default).\n - `app`: The expression is evaluated in the context of the app user.\n\n If the expression performs operations that require permissions but\n the user making the transition cannot be guaranteed to have those permissions,\n choose `app` and make sure that your app has the appropriate scopes.\n\n Note: regardless of the value selected here, the `user` variable in the expression always points to the user that performs the transition.\n\n"
8041
+ },
8042
+ "errorMessage": {
8043
+ "type": "object",
8044
+ "fieldDescription": "\n\nThe error message that will be shown if the validator rejects the transition by returning <code>false</code>.\n <p>\n This can be either a static [i18n property](../i18n-property/), or an object containing the \"expression\" property,\n with a Jira expression that returns the error message dynamically, based on the current transition or configuration.\n\n",
8045
+ "anyOf": [
8046
+ {
8047
+ "properties": {
8048
+ "expression": {
8049
+ "type": "string",
8050
+ "fieldDescription": "\n\nThe Jira expression that will return an error message if the validator rejects a transition.\n\n"
8051
+ }
8052
+ },
8053
+ "required": [
8054
+ "expression"
8055
+ ],
8056
+ "shortClassName": "validatorJiraExpressionErrorMessage",
8057
+ "type": "object",
8058
+ "title": "Jira Expression Error Message",
8059
+ "description": "\n\nA Jira expression that will be evaluated if the workflow validator fails.\n The string returned by the Jira expression will be displayed as the error message for the failed transition.\n\n"
8060
+ },
8061
+ {
8062
+ "properties": {
8063
+ "value": {
8064
+ "maxLength": 1500,
8065
+ "type": "string",
8066
+ "fieldDescription": "\n\nThe human-readable default value. This will be used if no translation exists.\n Only the following HTML tags are supported: `b`, `i`, `strong`, `em`, and `code`.\n\n"
8067
+ },
8068
+ "i18n": {
8069
+ "maxLength": 300,
8070
+ "type": "string",
8071
+ "fieldDescription": "\n\nThe localization key for the human-readable value.\n <a href=\"../../internationalization/\">Translations</a> for the keys are defined at the top level of the\n <a href=\"../../add-on-descriptor/\">add-on descriptor</a>.\n\n"
8072
+ }
8073
+ },
8074
+ "required": [
8075
+ "value"
8076
+ ],
8077
+ "shortClassName": "validatorI18nErrorMessage",
8078
+ "type": "object",
8079
+ "title": "i18n Property",
8080
+ "description": "\n\nRepresents a string that can be resolved via a localization properties file. You can use the same `i18n Property` key\n and value in multiple places if you like, but identical keys must have identical values.\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"value\": \"My text\"\n }\n\n\n"
8081
+ }
8082
+ ]
8083
+ },
8084
+ "name": {
8085
+ "$ref": "#/definitions/i18nProperty",
8086
+ "fieldDescription": "\n\nA human readable name.\n\n"
8087
+ },
8088
+ "description": {
8089
+ "$ref": "#/definitions/i18nProperty",
8090
+ "fieldDescription": "\n\nThe description of the workflow validator. This will be presented to the user when they add a new validator to a Jira workflow.\n\n"
8091
+ },
8092
+ "create": {
8093
+ "$ref": "#/definitions/url",
8094
+ "fieldDescription": "\n\nThe relative URL to the app page that allows to configure the workflow validator on creation.\n\n"
8095
+ },
8096
+ "key": {
8097
+ "$ref": "#/definitions/ModuleKeySchema"
8098
+ }
8099
+ },
8100
+ "required": [
8101
+ "key"
8102
+ ]
8103
+ },
8104
+ "minItems": 1
8105
+ },
8106
+ "connect-jira:jiraBackgroundScripts": {
8107
+ "type": "array",
8108
+ "items": {
8109
+ "properties": {
8110
+ "location": {
8111
+ "type": "object",
8112
+ "fieldDescription": "\n\nSpecifies where the background script will be located inside Jira, and any location-specific configuration.\n Currently, a background script can only be located in the new issue view and on the dashboards.\n\n Read about [Issue Background Script Location](/cloud/jira/platform/modules/issue-background-script-location/).\n\n",
8113
+ "anyOf": [
8114
+ {
8115
+ "properties": {
8116
+ "type": {
8117
+ "enum": [
8118
+ "issue_view",
8119
+ "ISSUE_VIEW",
8120
+ "dashboard",
8121
+ "DASHBOARD"
8122
+ ],
8123
+ "type": "string",
8124
+ "fieldDescription": "\n\nThe type field must be set to 'dashboard'\n\n"
8125
+ }
8126
+ },
8127
+ "required": [
8128
+ "type"
8129
+ ],
8130
+ "shortClassName": "dashboardBackgroundScriptLocationBean",
8131
+ "type": "object",
8132
+ "title": "Dashboard Background Script Location",
8133
+ "description": "\n\nDescribes the location of the dashboard background script module.\n\n"
8134
+ },
8135
+ {
8136
+ "properties": {
8137
+ "type": {
8138
+ "enum": [
8139
+ "issue_view",
8140
+ "ISSUE_VIEW",
8141
+ "dashboard",
8142
+ "DASHBOARD"
8143
+ ],
8144
+ "type": "string",
8145
+ "fieldDescription": "\n\nThe type field must be set to 'issue-view'\n\n"
8146
+ },
8147
+ "shouldReloadOnRefresh": {
8148
+ "type": "boolean",
8149
+ "fieldDescription": "\n\nWhether the background script iframe should reload when the issue is refreshed.\n\n"
8150
+ }
8151
+ },
8152
+ "required": [
8153
+ "type"
8154
+ ],
8155
+ "shortClassName": "issueViewBackgroundScriptLocationBean",
8156
+ "type": "object",
8157
+ "title": "Issue Background Script Location",
8158
+ "description": "\n\nDescribes the location of the issue background script module.\n\n"
8159
+ }
8160
+ ]
8161
+ },
8162
+ "url": {
8163
+ "format": "uri",
8164
+ "type": "string",
8165
+ "fieldDescription": "\n\nThe URL of the app resource that serves the iframe containing the background script.\n As with other app iframes, the iframe must load all.js.\n This URL does not support [context parameters](/cloud/jira/platform/context-parameters/).\n This URL must be relative to the app's baseUrl.\n\n"
8166
+ },
8167
+ "key": {
8168
+ "$ref": "#/definitions/ModuleKeySchema"
8169
+ }
8170
+ },
8171
+ "required": [
8172
+ "key"
8173
+ ]
8174
+ },
8175
+ "minItems": 1
8176
+ },
8177
+ "connect-jira:jiraDeploymentInfoProvider": {
8178
+ "type": "array",
8179
+ "items": {
8180
+ "properties": {
8181
+ "homeUrl": {
8182
+ "type": "string",
8183
+ "fieldDescription": "\n\nURL to the provider's homepage\n\n"
8184
+ },
8185
+ "documentationUrl": {
8186
+ "type": "string",
8187
+ "fieldDescription": "\n\nOptional URL to documentation about the provider's Jira integration\n\n"
8188
+ },
8189
+ "name": {
8190
+ "$ref": "#/definitions/i18nProperty",
8191
+ "fieldDescription": "\n\nA human readable name.\n\n"
8192
+ },
8193
+ "actions": {
8194
+ "properties": {
8195
+ "listDeployments": {
8196
+ "properties": {
8197
+ "templateUrl": {
8198
+ "type": "string",
8199
+ "fieldDescription": "\n\n"
8200
+ }
8201
+ },
8202
+ "required": [
8203
+ "templateUrl"
8204
+ ],
8205
+ "shortClassName": "deploymentProviderActionBean",
8206
+ "type": "object",
8207
+ "description": "\n\n<p>Defines the URL template that is used when an action is invoked. The following context parameters are supported: <code>{issue.key}</code>, <code>{issue.summary}</code>, <code>{issue.deployments}</code>.</p>\n\n",
8208
+ "fieldDescription": "\n\nAction for showing all linked deployments, when there are multiple deployments linked to a Jira issue.\n\n"
8209
+ }
8210
+ },
8211
+ "shortClassName": "deploymentProviderAllActionsBean",
8212
+ "type": "object",
8213
+ "description": "\n\n<p>Deployment actions that can be performed by Jira users.</p>\n<p>Each action is optional (unless indicated otherwise). The absence of an action indicates that the action is not supported by the provider.</p>\n\n",
8214
+ "fieldDescription": "\n\nOptional actions that can be performed by Jira users, e.g., list all deployments associated with the issue.\n\n"
8215
+ },
8216
+ "logoUrl": {
8217
+ "type": "string",
8218
+ "fieldDescription": "\n\nOptional URL to the provider's logo, which will be displayed in the UI\n\n"
8219
+ },
8220
+ "key": {
8221
+ "$ref": "#/definitions/ModuleKeySchema"
8222
+ }
8223
+ },
8224
+ "required": [
8225
+ "key"
8226
+ ]
8227
+ },
8228
+ "minItems": 1
8229
+ },
8230
+ "connect-jira:jiraReports": {
8231
+ "type": "array",
8232
+ "items": {
8233
+ "properties": {
8234
+ "name": {
8235
+ "$ref": "#/definitions/i18nProperty",
8236
+ "fieldDescription": "\n\nA human readable name.\n\n"
8237
+ },
8238
+ "description": {
8239
+ "$ref": "#/definitions/i18nProperty",
8240
+ "fieldDescription": "\n\nA human-readable description of this report module. This description is displayed on the reports list.\n\n"
8241
+ },
8242
+ "reportCategory": {
8243
+ "enum": [
8244
+ "agile",
8245
+ "AGILE",
8246
+ "issue_analysis",
8247
+ "ISSUE_ANALYSIS",
8248
+ "forecast_management",
8249
+ "FORECAST_MANAGEMENT",
8250
+ "other",
8251
+ "OTHER"
8252
+ ],
8253
+ "type": "string",
8254
+ "fieldDescription": "\n\nThe category of the report. The default category is other.\n\n",
8255
+ "defaultValue": "other"
8256
+ },
8257
+ "url": {
8258
+ "format": "uri",
8259
+ "type": "string",
8260
+ "fieldDescription": "\n\nSpecifies the URL targeted by the report. The URL is relative to the add-on's base URL.\n\n"
8254
8261
  },
8255
- "extractions": {
8262
+ "thumbnailUrl": {
8263
+ "format": "uri",
8264
+ "type": "string",
8265
+ "fieldDescription": "\n\nSpecifies the URL of the report thumbnail. The URL is relative to the add-on's base URL.\n\n"
8266
+ },
8267
+ "key": {
8268
+ "$ref": "#/definitions/ModuleKeySchema"
8269
+ }
8270
+ },
8271
+ "required": [
8272
+ "key"
8273
+ ]
8274
+ },
8275
+ "minItems": 1
8276
+ },
8277
+ "connect-jira:jiraDashboardItems": {
8278
+ "type": "array",
8279
+ "items": {
8280
+ "properties": {
8281
+ "name": {
8282
+ "$ref": "#/definitions/i18nProperty",
8283
+ "fieldDescription": "\n\nA human readable name.\n\n"
8284
+ },
8285
+ "description": {
8286
+ "$ref": "#/definitions/i18nProperty",
8287
+ "fieldDescription": "\n\nDescription of the dashboard item. This will be displayed for a user in the directory.\n\n"
8288
+ },
8289
+ "conditions": {
8256
8290
  "items": {
8257
- "properties": {
8258
- "path": {
8259
- "type": "string",
8260
- "fieldDescription": "\n\nThe path to the JSON data which is supposed to be indexed.\n\n For instance, for JSON <code>\"{\"label\": {\"color\": \"red\", \"text\":\"connect\"}}</code> the valid path\n referencing the color is label.color.\n\n Currently, specifying of index for JSON arrays and first level JSON (such as \"true\") is not supported.\n The JSON needs to be an object with properties.\n\n"
8291
+ "type": "object",
8292
+ "anyOf": [
8293
+ {
8294
+ "$ref": "#/definitions/singleCondition"
8261
8295
  },
8262
- "name": {
8263
- "type": "string",
8264
- "fieldDescription": "\n\nThe name, under which this property will be searchable with JQL. If not given, the <pre>path</pre> will be used.\n For a field with name Field Name, and an extraction with name ExtractionName the resulting query string will be\n \"Field Name\".ExtractionName.\n\n"
8296
+ {
8297
+ "$ref": "#/definitions/compositeCondition"
8298
+ }
8299
+ ]
8300
+ },
8301
+ "type": "array",
8302
+ "fieldDescription": "\n\n<a href=\"../../conditions/\">Conditions</a> can be added to display only when all the given conditions are true.\n\n"
8303
+ },
8304
+ "url": {
8305
+ "format": "uri",
8306
+ "type": "string",
8307
+ "fieldDescription": "\n\nThe URL of the service which will render the dashboard item. Following context parameters are supported in\n url.\n\n * `dashboard.id` unique id of the dashboard on which the item is rendered. This parameter is passed only on default view\n * `dashboardItem.id` unique id of the dashboard item which is rendered. This parameter is passed only on default view\n * `dashboardItem.key` key of the dashboard item. This parameter is passed in both: default and directory view\n * `dashboardItem.viewType` type of the view in which dashboard item is displayed. Default (for dashboard) and directory. This list may be extended\n\n"
8308
+ },
8309
+ "configurable": {
8310
+ "type": "boolean",
8311
+ "fieldDescription": "\n\nSpecify if the dashboard-item is configurable or not. Configurable dashboard items should render configuration\n view if there is no configuration stored for the dashboard item. [Dashboard item properties](../../jira-rest-api-scopes/) can\n be used for configuration storage.\n\n In addition, configurable dashboard items should register a javascript callback for `edit click`.\n\n AP.require(['jira'], function (jira) {\n jira.DashboardItem.onDashboardItemEdit(function() {\n // render dashboard item configuration now\n });\n });\n\n It is a common case to give users ability to set the name of the dashboard item. This can be achieved with a following\n JS code:\n\n AP.require(['jira'], function(jira) {\n jira.setDashboardItemTitle(\"Setting title works\");\n });\n\n",
8312
+ "defaultValue": "false"
8313
+ },
8314
+ "thumbnailUrl": {
8315
+ "format": "uri",
8316
+ "type": "string",
8317
+ "fieldDescription": "\n\nURI of the dashboard item thumbnail which is displayed in the directory.\n\n"
8318
+ },
8319
+ "key": {
8320
+ "$ref": "#/definitions/ModuleKeySchema"
8321
+ }
8322
+ },
8323
+ "required": [
8324
+ "key"
8325
+ ]
8326
+ },
8327
+ "minItems": 1
8328
+ },
8329
+ "connect-jira:jiraWorkflowPostFunctions": {
8330
+ "type": "array",
8331
+ "items": {
8332
+ "properties": {
8333
+ "view": {
8334
+ "$ref": "#/definitions/url",
8335
+ "fieldDescription": "\n\nThe relative URL to the add-on page that shows the read-only configuration or summary of the workflow post\n function.\n\n The view URL can contain the following context parameters:\n\n - `postFunction.id`: The unique identifier of the post function\n - `postFunction.config`: The configuration value saved to Jira after calling `WorkflowConfiguration.onSave`\n\n"
8336
+ },
8337
+ "triggered": {
8338
+ "$ref": "#/definitions/url",
8339
+ "fieldDescription": "\n\nThe relative URL to the add-on resource that receives the HTTP POST after a workflow transition.\n It includes the authentication headers that enable the add-on to validate the authenticity of the request.\n\n Your app must return a success status code in response to the HTTP POST request.\n If your app doesn't send a success status code the request will retry,\n as described in the [webhook retry policy](../../webhooks#retry-policy).\n\n <h3>Contents of the HTTP POST</h3>\n\n To understand the type of content that is sent to the add-on after a state transition, you can use the Connect\n inspector tool. The [Connect inspector](http://go.atlassian.com/connect-inspector) is a service that lets you\n generate a temporary Atlassian Connect add-on that you can install in your Cloud development environment to inspect\n the content of event messages.\n\n Here is an example POST body. For brevity, some fields have been removed or truncated.\n\n {\n \"configuration\": {\n \"value\": \"Configuration from the post function edit page\"\n },\n \"issue\": {\n \"fields\": {\n \"assignee\": { },\n \"attachment\": [],\n \"comment\": { },\n \"components\": [],\n \"created\": \"2013-11-18T17:56:23.864+1100\",\n \"description\": null,\n \"duedate\": null,\n \"environment\": null,\n \"fixVersions\": [],\n \"issuetype\": { },\n \"labels\": [],\n \"lastViewed\": \"2013-11-18T17:56:31.793+1100\",\n \"priority\": { },\n \"project\": {\n \"avatarUrls\": { },\n \"id\": \"10000\",\n \"key\": \"TEST\",\n \"name\": \"Test\"\n },\n \"reporter\": { },\n \"resolution\": { },\n \"resolutiondate\": \"2013-11-18T17:56:31.799+1100\",\n \"status\": { },\n \"summary\": \"The issue summary\",\n \"updated\": \"2013-11-18T17:56:23.864+1100\",\n \"versions\": [],\n \"votes\": { },\n \"watches\": { },\n \"workratio\": -1\n },\n \"id\": \"10000\",\n \"key\": \"TEST-1\",\n \"self\": \"http://issues.example.com/jira/issue/10000\"\n },\n \"transition\": {\n \"from_status\": \"Open\",\n \"to_status\": \"Resolved\",\n \"transitionId\": 5,\n \"transitionName\": \"Resolve Issue\",\n \"workflowId\": 10000,\n \"workflowName\": \"classic default workflow\"\n }\n }\n\n"
8340
+ },
8341
+ "edit": {
8342
+ "$ref": "#/definitions/url",
8343
+ "fieldDescription": "\n\nThe relative URL to the add-on page that allows to configure the workflow post function once it exists.\n\n The edit URL can contain the following context parameters:\n\n - `postFunction.id`: The unique identifier of the post function\n - `postFunction.config`: The configuration value saved to Jira after calling `WorkflowConfiguration.onSave`\n\n"
8344
+ },
8345
+ "name": {
8346
+ "$ref": "#/definitions/i18nProperty",
8347
+ "fieldDescription": "\n\nA human readable name.\n\n"
8348
+ },
8349
+ "description": {
8350
+ "$ref": "#/definitions/i18nProperty",
8351
+ "fieldDescription": "\n\nThe description of the workflow post function. This will be presented to the user when they add a new post\n function to a Jira workflow.\n\n"
8352
+ },
8353
+ "create": {
8354
+ "$ref": "#/definitions/url",
8355
+ "fieldDescription": "\n\nThe relative URL to the add-on page that allows to configure the workflow post function on creation.\n\n"
8356
+ },
8357
+ "key": {
8358
+ "$ref": "#/definitions/ModuleKeySchema"
8359
+ }
8360
+ },
8361
+ "required": [
8362
+ "key"
8363
+ ]
8364
+ },
8365
+ "minItems": 1
8366
+ },
8367
+ "connect-jira:jiraIssueContents": {
8368
+ "type": "array",
8369
+ "items": {
8370
+ "properties": {
8371
+ "icon": {
8372
+ "$ref": "#/definitions/icon",
8373
+ "fieldDescription": "\n\nSpecifies an icon to show alongside the quick-add menu item.\n The icon should be 24x24 pixels or larger, preferably in .SVG format.\n\n"
8374
+ },
8375
+ "tooltip": {
8376
+ "$ref": "#/definitions/i18nProperty",
8377
+ "fieldDescription": "\n\nSpecifies a tooltip for the quick-add menu item.\n\n"
8378
+ },
8379
+ "name": {
8380
+ "$ref": "#/definitions/i18nProperty",
8381
+ "fieldDescription": "\n\nA human readable name.\n\n"
8382
+ },
8383
+ "conditions": {
8384
+ "items": {
8385
+ "type": "object",
8386
+ "anyOf": [
8387
+ {
8388
+ "$ref": "#/definitions/singleCondition"
8265
8389
  },
8266
- "type": {
8267
- "enum": [
8268
- "number",
8269
- "NUMBER",
8270
- "text",
8271
- "TEXT",
8272
- "string",
8273
- "STRING",
8274
- "user",
8275
- "USER",
8276
- "date",
8277
- "DATE"
8278
- ],
8279
- "type": "string",
8280
- "fieldDescription": "\n\nThe type of the referenced value.\n\n The type can be one of the following values:\n\n * `number`, which is indexed as a number and allows the range ordering and searching on this field.\n * `text`, which is tokenized before indexing and allows searching for particular words.\n * `string` which is indexed as is and allows searching for the exact phrase only.\n * `user`, which is indexed as a user and allows user-based searching. The expected value is an _account ID_ string (a universal Atlassian user identifier).\n * `date`, which is indexed as a date with time and allows date-based searching.\n\n The value is expected to be a date string in one of the following formats:\n * [YYYY]-[MM]-[DD]\n * [YYYY]-[MM]-[DD]T[hh]:[mm]Z\n * [YYYY]-[MM]-[DD]T[hh]:[mm]+[hh]:[mm]\n * [YYYY]-[MM]-[DD]T[hh]:[mm]-[hh]:[mm]\n\n See [ISO_8601 standard](http://www.w3.org/TR/NOTE-datetime) for reference.\n\n"
8390
+ {
8391
+ "$ref": "#/definitions/compositeCondition"
8281
8392
  }
8393
+ ]
8394
+ },
8395
+ "type": "array",
8396
+ "fieldDescription": "\n\n<a href=\"../../conditions/\">Conditions</a> can be added to display only when all the given conditions are true.\n\n"
8397
+ },
8398
+ "target": {
8399
+ "type": "object",
8400
+ "fieldDescription": "\n\nSpecifies the target of this content as a result of clicking on the menu item. Currently,\n you can only display a web panel in the issue's content area.\n\n Read about [Issue Page Target Web Panel](/cloud/jira/platform/modules/issue-page-target-web-panel/).\n\n",
8401
+ "properties": {
8402
+ "type": {
8403
+ "enum": [
8404
+ "web_panel",
8405
+ "WEB_PANEL"
8406
+ ],
8407
+ "type": "string",
8408
+ "fieldDescription": "\n\nThe type field must be set to 'web_panel'\n\n"
8282
8409
  },
8283
- "required": [
8284
- "path",
8285
- "type"
8286
- ],
8287
- "shortClassName": "issueFieldValueExtractionBean",
8410
+ "url": {
8411
+ "format": "uri",
8412
+ "type": "string",
8413
+ "fieldDescription": "\n\nThe URL of the add-on resource that provides the web panel content.\n This URL must be relative to the app's baseUrl.\n\n"
8414
+ }
8415
+ },
8416
+ "required": [
8417
+ "type",
8418
+ "url"
8419
+ ],
8420
+ "shortClassName": "issuePageTargetWebPanelBean",
8421
+ "title": "Issue Page Target Web Panel",
8422
+ "description": "\n\nDescribes the target of the issue content module. Supports displaying a web panel in the content area of the issue view.\n\n"
8423
+ },
8424
+ "contentPresentConditions": {
8425
+ "items": {
8288
8426
  "type": "object",
8289
- "title": "Issue Field Option Property Index",
8290
- "description": "\n\nDefines an issue field option property to be indexed by Jira. An option can contain an additional properties object.\n In this bean, you can define which properties will be extracted, so that a user will be able to search for issues which have options set that have a certain property.\n\n <p>\n Note that `multi_select` fields may have more than one option selected. In that case, properties from all options\n are indexed. Each Option's properties should have the same structure to be indexed properly, i.e. the types of values\n across all options' properties should not differ. If they do, Jira will still try to act smart and do the most reasonable thing,\n but the results are not guaranteed.\n </p>\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"path\": \"category\",\n \"type\": \"text\",\n \"name\": \"categoryName\"\n }\n\n\n"
8427
+ "anyOf": [
8428
+ {
8429
+ "$ref": "#/definitions/compositeCondition"
8430
+ },
8431
+ {
8432
+ "$ref": "#/definitions/singleCondition"
8433
+ }
8434
+ ]
8291
8435
  },
8292
8436
  "type": "array",
8293
- "fieldDescription": "\n\nExtractions used for JQL search. This is valid only when the `type` is `single_select` or `multi_select`.\n\n"
8437
+ "fieldDescription": "\n\nSpecifies a list of [Conditions](/cloud/jira/platform/conditions/) that, when resolved to true, will\n force the content to always be displayed for that issue. Users have the ability to collapse the content\n if they don't want to see it.\n\n"
8438
+ },
8439
+ "jiraNativeAppsEnabled": {
8440
+ "type": "boolean",
8441
+ "fieldDescription": "\n\nThis is coming soon. We will update the docs here with the minimum supported Jira iOS and Android app versions\n when it is ready.\n\n Specifies whether the issue content module will be shown in the Jira mobile and desktop clients.\n\n",
8442
+ "defaultValue": "false"
8443
+ },
8444
+ "key": {
8445
+ "$ref": "#/definitions/ModuleKeySchema"
8446
+ }
8447
+ },
8448
+ "required": [
8449
+ "key"
8450
+ ]
8451
+ },
8452
+ "minItems": 1
8453
+ },
8454
+ "connect-jira:jiraDevelopmentTool": {
8455
+ "type": "array",
8456
+ "items": {
8457
+ "properties": {
8458
+ "capabilities": {
8459
+ "items": {
8460
+ "enum": [
8461
+ "commit",
8462
+ "COMMIT",
8463
+ "branch",
8464
+ "BRANCH",
8465
+ "pull_request",
8466
+ "PULL_REQUEST"
8467
+ ],
8468
+ "type": "string"
8469
+ },
8470
+ "type": "array",
8471
+ "fieldDescription": "\n\nWhat development information the tool offers\n\n"
8472
+ },
8473
+ "application": {
8474
+ "$ref": "#/definitions/i18nProperty",
8475
+ "fieldDescription": "\n\nThe application behind this development tool\n\n"
8476
+ },
8477
+ "name": {
8478
+ "$ref": "#/definitions/i18nProperty",
8479
+ "fieldDescription": "\n\nA human readable name.\n\n"
8480
+ },
8481
+ "actions": {
8482
+ "$ref": "#/definitions/developmentToolModuleActionsBean",
8483
+ "fieldDescription": "\n\nOptional actions that can be performed by Jira users, e.g., create branch, etc.\n\n"
8484
+ },
8485
+ "url": {
8486
+ "type": "string",
8487
+ "fieldDescription": "\n\nA URL to the development tool\n\n"
8488
+ },
8489
+ "logoUrl": {
8490
+ "type": "string",
8491
+ "fieldDescription": "\n\nThe logo for the development tool, will be displayed in an area 16 by 16 pixels\n\n"
8294
8492
  },
8295
8493
  "key": {
8296
8494
  "$ref": "#/definitions/ModuleKeySchema"
@@ -8302,7 +8500,7 @@
8302
8500
  },
8303
8501
  "minItems": 1
8304
8502
  },
8305
- "connect-jira:jiraIssueTabPanels": {
8503
+ "connect-jira:jiraProjectTabPanels": {
8306
8504
  "type": "array",
8307
8505
  "items": {
8308
8506
  "properties": {
@@ -8318,33 +8516,6 @@
8318
8516
  "items": {
8319
8517
  "type": "object",
8320
8518
  "anyOf": [
8321
- {
8322
- "properties": {
8323
- "condition": {
8324
- "maxLength": 100,
8325
- "type": "string",
8326
- "fieldDescription": "\n\nA string indicating the name of the condition\n\n"
8327
- },
8328
- "invert": {
8329
- "type": "boolean",
8330
- "fieldDescription": "\n\nA flag indicating whether to invert the boolean result of the condition.\n\n",
8331
- "defaultValue": "false"
8332
- },
8333
- "params": {
8334
- "additionalProperties": true,
8335
- "type": "object",
8336
- "fieldTitle": "Object",
8337
- "fieldDescription": "\n\nThis object represents a map of key/value pairs, where each property name and value corresponds to the parameter name and value respectively.\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"params\": {\n \"someOtherProperty\": \"someValue\",\n \"myCustomProperty\": \"myValue\"\n }\n }\n\n\n"
8338
- }
8339
- },
8340
- "required": [
8341
- "condition"
8342
- ],
8343
- "shortClassName": "singleConditionBean",
8344
- "type": "object",
8345
- "title": "Single Condition",
8346
- "description": "\n\nSingle Conditions are either provided by the host application. See the complete documentation of\n [Conditions](../../conditions/) for more information.\n\n To invert a condition, add the attribute ``invert=\"true\"`` to the condition element.\n This is useful where you want to show the section if a certain condition is not satisfied.\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"condition\": \"user_is_logged_in\",\n \"invert\": false\n }\n\n\n"
8347
- },
8348
8519
  {
8349
8520
  "properties": {
8350
8521
  "conditions": {
@@ -8407,6 +8578,33 @@
8407
8578
  "type": "object",
8408
8579
  "title": "Composite Condition",
8409
8580
  "description": "\n\nComposite Conditions are composed of a collection of [Single Condition](../single-condition/) / Composite Conditions\n and a type attribute.\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"conditions\": [\n {\n \"or\": [\n {\n \"condition\": \"can_attach_file_to_issue\",\n \"invert\": false\n },\n {\n \"condition\": \"is_issue_assigned_to_current_user\",\n \"invert\": false\n }\n ]\n },\n {\n \"condition\": \"user_is_logged_in\",\n \"invert\": false\n }\n ]\n }\n\n\n"
8581
+ },
8582
+ {
8583
+ "properties": {
8584
+ "condition": {
8585
+ "maxLength": 100,
8586
+ "type": "string",
8587
+ "fieldDescription": "\n\nA string indicating the name of the condition\n\n"
8588
+ },
8589
+ "invert": {
8590
+ "type": "boolean",
8591
+ "fieldDescription": "\n\nA flag indicating whether to invert the boolean result of the condition.\n\n",
8592
+ "defaultValue": "false"
8593
+ },
8594
+ "params": {
8595
+ "additionalProperties": true,
8596
+ "type": "object",
8597
+ "fieldTitle": "Object",
8598
+ "fieldDescription": "\n\nThis object represents a map of key/value pairs, where each property name and value corresponds to the parameter name and value respectively.\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"params\": {\n \"someOtherProperty\": \"someValue\",\n \"myCustomProperty\": \"myValue\"\n }\n }\n\n\n"
8599
+ }
8600
+ },
8601
+ "required": [
8602
+ "condition"
8603
+ ],
8604
+ "shortClassName": "singleConditionBean",
8605
+ "type": "object",
8606
+ "title": "Single Condition",
8607
+ "description": "\n\nSingle Conditions are either provided by the host application. See the complete documentation of\n [Conditions](../../conditions/) for more information.\n\n To invert a condition, add the attribute ``invert=\"true\"`` to the condition element.\n This is useful where you want to show the section if a certain condition is not satisfied.\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"condition\": \"user_is_logged_in\",\n \"invert\": false\n }\n\n\n"
8410
8608
  }
8411
8609
  ]
8412
8610
  },
@@ -8434,32 +8632,37 @@
8434
8632
  },
8435
8633
  "minItems": 1
8436
8634
  },
8437
- "connect-jira:jiraBuildInfoProvider": {
8635
+ "connect-jira:jiraGlobalPermissions": {
8438
8636
  "type": "array",
8439
8637
  "items": {
8440
8638
  "properties": {
8441
- "homeUrl": {
8442
- "type": "string",
8443
- "fieldDescription": "\n\nURL to the provider's homepage\n\n"
8444
- },
8445
- "documentationUrl": {
8446
- "type": "string",
8447
- "fieldDescription": "\n\nOptional URL to documentation about the provider's Jira integration\n\n"
8639
+ "defaultGrants": {
8640
+ "items": {
8641
+ "enum": [
8642
+ "none",
8643
+ "NONE",
8644
+ "jira-administrators",
8645
+ "JIRA-ADMINISTRATORS",
8646
+ "all",
8647
+ "ALL"
8648
+ ],
8649
+ "type": "string"
8650
+ },
8651
+ "type": "array",
8652
+ "fieldDescription": "\n\nSpecifies group of users that will be granted this permissions when the add-on is first installed.\n\n Allowed values:\n\n * `NONE` - Permission will not be granted to anyone by default\n * `ALL` - If `anonymousAllowed` is set to true, every user, both logged in and anonymous, will be granted the permission.\n Otherwise, permission will be granted to every user with application role assigned.\n * `JIRA-ADMINISTRATORS` - Every user with jira administration permission will be granted this permission.\n\n"
8448
8653
  },
8449
8654
  "name": {
8450
8655
  "$ref": "#/definitions/i18nProperty",
8451
8656
  "fieldDescription": "\n\nA human readable name.\n\n"
8452
8657
  },
8453
- "actions": {
8454
- "properties": {},
8455
- "shortClassName": "buildProviderAllActionsBean",
8456
- "type": "object",
8457
- "description": "\n\n<p>Build actions that can be performed by Jira users.</p>\n <p>Currently there are no actions defined for build providers. Please contact us if you need any.</p>\n\n",
8458
- "fieldDescription": "\n\nOptional actions that can be performed by Jira users\n\n"
8658
+ "description": {
8659
+ "$ref": "#/definitions/i18nProperty",
8660
+ "fieldDescription": "\n\nDescription of the global permission. It will be displayed under the permission's name.\n\n"
8459
8661
  },
8460
- "logoUrl": {
8461
- "type": "string",
8462
- "fieldDescription": "\n\nOptional URL to the provider's logo, which will be displayed in the UI\n\n"
8662
+ "anonymousAllowed": {
8663
+ "type": "boolean",
8664
+ "fieldDescription": "\n\nSpecifies if this permission can be granted to anonymous users.\n\n",
8665
+ "defaultValue": "true"
8463
8666
  },
8464
8667
  "key": {
8465
8668
  "$ref": "#/definitions/ModuleKeySchema"
@@ -8471,127 +8674,136 @@
8471
8674
  },
8472
8675
  "minItems": 1
8473
8676
  },
8474
- "connect-jira:jiraWorkflowConditions": {
8677
+ "connect-jira:jiraIssueFields": {
8475
8678
  "type": "array",
8476
8679
  "items": {
8477
8680
  "properties": {
8478
- "view": {
8479
- "$ref": "#/definitions/url",
8480
- "fieldDescription": "\n\nThe relative URL to the app page that shows the read-only configuration or summary of the workflow condition.\n\n The view URL can contain the following context parameters:\n\n - `condition.id`: The unique identifier of the condition.\n - `condition.config`: The configuration value saved to Jira after calling `WorkflowConfiguration.onSave`.\n\n"
8481
- },
8482
- "expression": {
8483
- "type": "string",
8484
- "fieldDescription": "\n\nThe [Jira expression](https://developer.atlassian.com/cloud/jira/platform/rest/v3/#api-api-3-expression-eval-post)\n used to evaluate the condition. Must return a boolean value.\n <p>\n This expression can be overridden using the configuration page.\n If you return configuration with property \"expression\", then that expression will be used\n to evaluate the condition instead of the expression defined here. For example:\n\n <pre><code>AP.require([\"jira\"], function(jira) {\n jira.WorkflowConfiguration.onSave(function() {\n var config = {\n \"expression\": \"dynamically built expression\"\n };\n return JSON.stringify(config);\n });\n});</code></pre>\n\n"
8485
- },
8486
- "edit": {
8487
- "$ref": "#/definitions/url",
8488
- "fieldDescription": "\n\nThe relative URL to the app page that allows to configure the workflow condition once it exists.\n\n The edit URL can contain the following context parameters:\n\n - `condition.id`: The unique identifier of the condition.\n - `condition.config`: The configuration value saved to Jira after calling `WorkflowConfiguration.onSave`.\n\n"
8489
- },
8490
- "evaluationContext": {
8491
- "enum": [
8492
- "user",
8493
- "USER",
8494
- "app",
8495
- "APP"
8681
+ "template": {
8682
+ "properties": {
8683
+ "type": {
8684
+ "enum": [
8685
+ "link",
8686
+ "LINK"
8687
+ ],
8688
+ "type": "string",
8689
+ "fieldDescription": "\n\nType of the template.\n\n"
8690
+ },
8691
+ "url": {
8692
+ "type": "string",
8693
+ "fieldDescription": "\n\n<p>\n If the type is 'link' then this specifies the URL template for the link.\n It is possible to use <a href=\"../../context-parameters/\">context parameters</a> in the template.\n </p>\n\n <p>\n The URL may be relative or absolute. If it is the former, then the Jira context path will be prepended automatically.\n </p>\n\n <p>\n The following context parameters are available:\n <ul>\n <li>option.id, option.key, option.properties</li>\n <li>issue.id, issue.key</li>\n <li>project.id, project.key</li>\n <li>user.id (deprecated), user.name (deprecated), user.accountId</li>\n </ul>\n\n"
8694
+ }
8695
+ },
8696
+ "required": [
8697
+ "type",
8698
+ "url"
8496
8699
  ],
8497
- "type": "string",
8498
- "fieldDescription": "\n\nEXPERIMENTAL. Controls how to run the expression during the transition.\n\n - `user`: The expression will be evaluated in the context of the user making the transition (default).\n - `app`: The expression will be evaluated in the context of the app user.\n\n If the expression needs to perform some operations which require permissions that the user making\n the transition might not have, choose `app` and make sure that your app has appropriate scopes.\n\n Note: regardless of the value selected here, the `user` variable in the expression always points to the user that performs the transition.\n\n"
8499
- },
8500
- "name": {
8501
- "$ref": "#/definitions/i18nProperty",
8502
- "fieldDescription": "\n\nA human readable name.\n\n"
8503
- },
8504
- "description": {
8505
- "$ref": "#/definitions/i18nProperty",
8506
- "fieldDescription": "\n\nThe description of the workflow condition. This will be presented to the user when they add a new condition to a Jira workflow.\n\n"
8700
+ "shortClassName": "issueFieldTemplateBean",
8701
+ "type": "object",
8702
+ "title": "Issue Field Template",
8703
+ "description": "\n\nDefines the template used to render issue field options in the UI view.\n\n",
8704
+ "fieldDescription": "\n\nThe template used to render options. This is only valid when the `type` is `single_select` or `multi_select`.\n\n"
8507
8705
  },
8508
- "create": {
8509
- "$ref": "#/definitions/url",
8510
- "fieldDescription": "\n\nThe relative URL to the app page that allows to configure the workflow condition on creation.\n\n"
8706
+ "property": {
8707
+ "properties": {
8708
+ "path": {
8709
+ "type": "string",
8710
+ "fieldDescription": "\n\nThe path to the value in the JSON object.\n\n For instance, for JSON <code>\"{\"label\": {\"color\": \"red\", \"text\":\"connect\"}}</code> the valid path\n referencing the color is <code>label.color</code>.\n\n"
8711
+ },
8712
+ "type": {
8713
+ "enum": [
8714
+ "number",
8715
+ "NUMBER",
8716
+ "string",
8717
+ "STRING",
8718
+ "date",
8719
+ "DATE"
8720
+ ],
8721
+ "type": "string",
8722
+ "fieldDescription": "\n\nThe type of the referenced value. It will affect how the value is interpreted and displayed,\n and how the field behaves in JQL.\n\n The type can be one of the following:\n\n * `number`, which is displayed as a number and allows the range ordering and searching on this field.\n * `string`, which supports a string, for example <code>\"example text\"</code>, and a list of strings, for example <code>[\"example text1\", \"example text2\"]</code>.\n The string is displayed as is and enables a search for matching phrases. The list is displayed as comma-separated values and enables a search for matches to any phrase from the list.\n * `date`, which is displayed as a date with time and allows date-based searching.\n\n The value is expected to be a date string in one of the following formats:\n * [YYYY]-[MM]-[DD]\n * [YYYY]-[MM]-[DD]T[hh]:[mm]Z\n * [YYYY]-[MM]-[DD]T[hh]:[mm]+[hh]:[mm]\n * [YYYY]-[MM]-[DD]T[hh]:[mm]-[hh]:[mm]\n\n See [ISO_8601 standard](http://www.w3.org/TR/NOTE-datetime) for reference.\n\n"
8723
+ },
8724
+ "key": {
8725
+ "type": "string",
8726
+ "fieldDescription": "\n\nThe key of the issue property.\n\n"
8727
+ }
8728
+ },
8729
+ "required": [
8730
+ "path",
8731
+ "type",
8732
+ "key"
8733
+ ],
8734
+ "shortClassName": "issueFieldPropertyBean",
8735
+ "type": "object",
8736
+ "title": "Issue Field Property",
8737
+ "description": "\n\nDefines an issue property that will store the value for the issue field of the `read_only` type.\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"path\": \"comments.count\",\n \"key\": \"statistics\",\n \"type\": \"number\"\n }\n\n\n",
8738
+ "fieldDescription": "\n\nThe property that stores the field value.\n\n Required when the `type` is `read_only`, otherwise not used.\n\n"
8511
8739
  },
8512
- "key": {
8513
- "$ref": "#/definitions/ModuleKeySchema"
8514
- }
8515
- },
8516
- "required": [
8517
- "key"
8518
- ]
8519
- },
8520
- "minItems": 1
8521
- },
8522
- "connect-jira:jiraIssueTypes": {
8523
- "type": "array",
8524
- "items": {
8525
- "properties": {
8526
8740
  "name": {
8527
8741
  "$ref": "#/definitions/i18nProperty",
8528
8742
  "fieldDescription": "\n\nA human readable name.\n\n"
8529
8743
  },
8530
8744
  "description": {
8531
8745
  "$ref": "#/definitions/i18nProperty",
8532
- "fieldDescription": "\n\nDescription of the issue type.\n Currently it does not support i18n\n\n"
8746
+ "fieldDescription": "\n\nDescription of the issue field. This will be displayed for the user under the field in the create or edit issue view.\n\n"
8533
8747
  },
8534
8748
  "type": {
8535
8749
  "enum": [
8536
- "standard",
8537
- "STANDARD",
8538
- "subtask",
8539
- "SUBTASK"
8750
+ "string",
8751
+ "STRING",
8752
+ "text",
8753
+ "TEXT",
8754
+ "rich_text",
8755
+ "RICH_TEXT",
8756
+ "single_select",
8757
+ "SINGLE_SELECT",
8758
+ "multi_select",
8759
+ "MULTI_SELECT",
8760
+ "number",
8761
+ "NUMBER",
8762
+ "read_only",
8763
+ "READ_ONLY"
8540
8764
  ],
8541
8765
  "type": "string",
8542
- "fieldDescription": "\n\nType of issue-type standard or subtask\n\n"
8543
- },
8544
- "key": {
8545
- "$ref": "#/definitions/ModuleKeySchema"
8546
- }
8547
- },
8548
- "required": [
8549
- "key"
8550
- ]
8551
- },
8552
- "minItems": 1
8553
- },
8554
- "connect-jira:jiraProjectAdminTabPanels": {
8555
- "type": "array",
8556
- "items": {
8557
- "properties": {
8558
- "name": {
8559
- "$ref": "#/definitions/i18nProperty",
8560
- "fieldDescription": "\n\nA human readable name.\n\n"
8561
- },
8562
- "weight": {
8563
- "type": "integer",
8564
- "fieldDescription": "\n\n<p>Determines the order in which the tab panel's link appears in the menu or list.</p>\n\n <p>The \"lightest\" weight (i.e., lowest number) appears first, rising relative to other items,\n while the \"heaviest\" weights sink to the bottom of the menu or list.</p>\n\n <p>Built-in web items have weights that are incremented by numbers that leave room for additional\n items, such as by 10 or 100. Be mindful of the weight you choose for your item, so that it appears\n in a sensible order given existing items.</p>\n\n"
8565
- },
8566
- "location": {
8567
- "type": "string",
8568
- "fieldDescription": "\n\nThe name of the group of tabs in the project configuration where the tab panel should appear.\n The following are accepted values.\n\n * `projectgroup1`\n * `projectgroup2`\n * `projectgroup3`\n * `projectgroup4`\n\nSee [Project Configuration Locations](https://developer.atlassian.com/jiradev/jira-architecture/web-fragments/project-configuration-locations#ProjectConfigurationLocations-AddingNewItemstoExistingWebSections) for details.\n\n"
8766
+ "fieldDescription": "\n\nThe type of the field. The following types are available:\n\n * `number` Allows to set a number.\n * `string` Allows to set a string, supports exact matches in JQL.\n * `text` Allows to set a string, supports fuzzy search in JQL (with the \"~\" operator).\n * `rich_text` Allows to set multi-line text in Jira, and supports fuzzy search in JQL. Note: If you migrate from `text` to `rich_text` for an already existing field, the data won't be migrated.\n * `single_select` Allows to select one value from a predefined set. The [Issue field options](/cloud/jira/platform/rest/v2/#api-group-Issue-field-options) REST API can be user to manage available values.\n * `multi_select` Allows to select multiple values from a predefined set. The [Issue field options](/cloud/jira/platform/rest/v2/#api-group-Issue-field-options) REST API can be used to manage available values.\n * `read_only` Displays a given issue property, not editable by users.\n\n"
8569
8767
  },
8570
- "conditions": {
8768
+ "extractions": {
8571
8769
  "items": {
8572
- "type": "object",
8573
- "anyOf": [
8574
- {
8575
- "$ref": "#/definitions/compositeCondition"
8770
+ "properties": {
8771
+ "path": {
8772
+ "type": "string",
8773
+ "fieldDescription": "\n\nThe path to the JSON data which is supposed to be indexed.\n\n For instance, for JSON <code>\"{\"label\": {\"color\": \"red\", \"text\":\"connect\"}}</code> the valid path\n referencing the color is label.color.\n\n Currently, specifying of index for JSON arrays and first level JSON (such as \"true\") is not supported.\n The JSON needs to be an object with properties.\n\n"
8576
8774
  },
8577
- {
8578
- "$ref": "#/definitions/singleCondition"
8775
+ "name": {
8776
+ "type": "string",
8777
+ "fieldDescription": "\n\nThe name, under which this property will be searchable with JQL. If not given, the <pre>path</pre> will be used.\n For a field with name Field Name, and an extraction with name ExtractionName the resulting query string will be\n \"Field Name\".ExtractionName.\n\n"
8778
+ },
8779
+ "type": {
8780
+ "enum": [
8781
+ "number",
8782
+ "NUMBER",
8783
+ "text",
8784
+ "TEXT",
8785
+ "string",
8786
+ "STRING",
8787
+ "user",
8788
+ "USER",
8789
+ "date",
8790
+ "DATE"
8791
+ ],
8792
+ "type": "string",
8793
+ "fieldDescription": "\n\nThe type of the referenced value.\n\n The type can be one of the following values:\n\n * `number`, which is indexed as a number and allows the range ordering and searching on this field.\n * `text`, which is tokenized before indexing and allows searching for particular words.\n * `string` which is indexed as is and allows searching for the exact phrase only.\n * `user`, which is indexed as a user and allows user-based searching. The expected value is an _account ID_ string (a universal Atlassian user identifier).\n * `date`, which is indexed as a date with time and allows date-based searching.\n\n The value is expected to be a date string in one of the following formats:\n * [YYYY]-[MM]-[DD]\n * [YYYY]-[MM]-[DD]T[hh]:[mm]Z\n * [YYYY]-[MM]-[DD]T[hh]:[mm]+[hh]:[mm]\n * [YYYY]-[MM]-[DD]T[hh]:[mm]-[hh]:[mm]\n\n See [ISO_8601 standard](http://www.w3.org/TR/NOTE-datetime) for reference.\n\n"
8579
8794
  }
8580
- ]
8795
+ },
8796
+ "required": [
8797
+ "path",
8798
+ "type"
8799
+ ],
8800
+ "shortClassName": "issueFieldValueExtractionBean",
8801
+ "type": "object",
8802
+ "title": "Issue Field Option Property Index",
8803
+ "description": "\n\nDefines an issue field option property to be indexed by Jira. An option can contain an additional properties object.\n In this bean, you can define which properties will be extracted, so that a user will be able to search for issues which have options set that have a certain property.\n\n <p>\n Note that `multi_select` fields may have more than one option selected. In that case, properties from all options\n are indexed. Each Option's properties should have the same structure to be indexed properly, i.e. the types of values\n across all options' properties should not differ. If they do, Jira will still try to act smart and do the most reasonable thing,\n but the results are not guaranteed.\n </p>\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"path\": \"category\",\n \"type\": \"text\",\n \"name\": \"categoryName\"\n }\n\n\n"
8581
8804
  },
8582
8805
  "type": "array",
8583
- "fieldDescription": "\n\n<a href=\"../../conditions/\">Conditions</a> can be added to display only when all the given conditions are true.\n\n"
8584
- },
8585
- "params": {
8586
- "additionalProperties": true,
8587
- "type": "object",
8588
- "fieldTitle": "Object",
8589
- "fieldDescription": "\n\nThis object represents a map of key/value pairs, where each property name and value corresponds to the parameter name and value respectively.\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"params\": {\n \"someOtherProperty\": \"someValue\",\n \"myCustomProperty\": \"myValue\"\n }\n }\n\n\n"
8590
- },
8591
- "url": {
8592
- "format": "uri",
8593
- "type": "string",
8594
- "fieldDescription": "\n\nSpecifies the URL targeted by the tab panel. The URL is relative to the add-on's base URL.\n\n"
8806
+ "fieldDescription": "\n\nExtractions used for JQL search. This is valid only when the `type` is `single_select` or `multi_select`.\n\n"
8595
8807
  },
8596
8808
  "key": {
8597
8809
  "$ref": "#/definitions/ModuleKeySchema"
@@ -8603,85 +8815,27 @@
8603
8815
  },
8604
8816
  "minItems": 1
8605
8817
  },
8606
- "connect-jira:jiraWorkflowValidators": {
8818
+ "connect-jira:jiraIssueTypes": {
8607
8819
  "type": "array",
8608
8820
  "items": {
8609
8821
  "properties": {
8610
- "view": {
8611
- "$ref": "#/definitions/url",
8612
- "fieldDescription": "\n\nThe relative URL to the app page that shows the read-only configuration or summary of the workflow validator.\n\n The view URL can contain the following context parameters:\n\n - `validator.id`: The unique identifier of the validator.\n - `validator.config`: The configuration value saved to Jira after calling `WorkflowConfiguration.onSave`.\n\n"
8613
- },
8614
- "expression": {
8615
- "type": "string",
8616
- "fieldDescription": "\n\nThe [Jira expression](https://developer.atlassian.com/cloud/jira/platform/rest/v3/#api-api-3-expression-eval-post)\n used to evaluate the validator. Must return a boolean or string value.\n <p>\n This expression can be overridden using the configuration page.\n If you return configuration with property \"expression\", then that expression will be used\n to evaluate the validator instead of the expression defined here. For example:\n\n <pre><code>AP.require([\"jira\"], function(jira) {\n jira.WorkflowConfiguration.onSave(function() {\n var config = {\n \"expression\": \"dynamically built expression\"\n };\n return JSON.stringify(config);\n });\n});</code></pre>\n\n"
8617
- },
8618
- "edit": {
8619
- "$ref": "#/definitions/url",
8620
- "fieldDescription": "\n\nThe relative URL to the app page that allows to configure the workflow validator once it exists.\n\n The edit URL can contain the following context parameters:\n\n - `validator.id`: The unique identifier of the validator.\n - `validator.config`: The configuration value saved to Jira after calling `WorkflowConfiguration.onSave`.\n\n"
8621
- },
8622
- "evaluationContext": {
8623
- "enum": [
8624
- "user",
8625
- "USER",
8626
- "app",
8627
- "APP"
8628
- ],
8629
- "type": "string",
8630
- "fieldDescription": "\n\nEXPERIMENTAL. Controls how the expression is run during the transition:\n\n - `user`: The expression is evaluated in the context of the user making the transition (default).\n - `app`: The expression is evaluated in the context of the app user.\n\n If the expression performs operations that require permissions but\n the user making the transition cannot be guaranteed to have those permissions,\n choose `app` and make sure that your app has the appropriate scopes.\n\n Note: regardless of the value selected here, the `user` variable in the expression always points to the user that performs the transition.\n\n"
8631
- },
8632
- "errorMessage": {
8633
- "type": "object",
8634
- "fieldDescription": "\n\nThe error message that will be shown if the validator rejects the transition by returning <code>false</code>.\n <p>\n This can be either a static [i18n property](../i18n-property/), or an object containing the \"expression\" property,\n with a Jira expression that returns the error message dynamically, based on the current transition or configuration.\n\n",
8635
- "anyOf": [
8636
- {
8637
- "properties": {
8638
- "value": {
8639
- "maxLength": 1500,
8640
- "type": "string",
8641
- "fieldDescription": "\n\nThe human-readable default value. This will be used if no translation exists.\n Only the following HTML tags are supported: `b`, `i`, `strong`, `em`, and `code`.\n\n"
8642
- },
8643
- "i18n": {
8644
- "maxLength": 300,
8645
- "type": "string",
8646
- "fieldDescription": "\n\nThe localization key for the human-readable value.\n <a href=\"../../internationalization/\">Translations</a> for the keys are defined at the top level of the\n <a href=\"../../add-on-descriptor/\">add-on descriptor</a>.\n\n"
8647
- }
8648
- },
8649
- "required": [
8650
- "value"
8651
- ],
8652
- "shortClassName": "validatorI18nErrorMessage",
8653
- "type": "object",
8654
- "title": "i18n Property",
8655
- "description": "\n\nRepresents a string that can be resolved via a localization properties file. You can use the same `i18n Property` key\n and value in multiple places if you like, but identical keys must have identical values.\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"value\": \"My text\"\n }\n\n\n"
8656
- },
8657
- {
8658
- "properties": {
8659
- "expression": {
8660
- "type": "string",
8661
- "fieldDescription": "\n\nThe Jira expression that will return an error message if the validator rejects a transition.\n\n"
8662
- }
8663
- },
8664
- "required": [
8665
- "expression"
8666
- ],
8667
- "shortClassName": "validatorJiraExpressionErrorMessage",
8668
- "type": "object",
8669
- "title": "Jira Expression Error Message",
8670
- "description": "\n\nA Jira expression that will be evaluated if the workflow validator fails.\n The string returned by the Jira expression will be displayed as the error message for the failed transition.\n\n"
8671
- }
8672
- ]
8673
- },
8674
8822
  "name": {
8675
8823
  "$ref": "#/definitions/i18nProperty",
8676
8824
  "fieldDescription": "\n\nA human readable name.\n\n"
8677
8825
  },
8678
8826
  "description": {
8679
8827
  "$ref": "#/definitions/i18nProperty",
8680
- "fieldDescription": "\n\nThe description of the workflow validator. This will be presented to the user when they add a new validator to a Jira workflow.\n\n"
8828
+ "fieldDescription": "\n\nDescription of the issue type.\n Currently it does not support i18n\n\n"
8681
8829
  },
8682
- "create": {
8683
- "$ref": "#/definitions/url",
8684
- "fieldDescription": "\n\nThe relative URL to the app page that allows to configure the workflow validator on creation.\n\n"
8830
+ "type": {
8831
+ "enum": [
8832
+ "standard",
8833
+ "STANDARD",
8834
+ "subtask",
8835
+ "SUBTASK"
8836
+ ],
8837
+ "type": "string",
8838
+ "fieldDescription": "\n\nType of issue-type standard or subtask\n\n"
8685
8839
  },
8686
8840
  "key": {
8687
8841
  "$ref": "#/definitions/ModuleKeySchema"
@@ -8715,54 +8869,6 @@
8715
8869
  },
8716
8870
  "minItems": 1
8717
8871
  },
8718
- "connect-jira:jiraBackgroundScripts": {
8719
- "type": "array",
8720
- "items": {
8721
- "properties": {
8722
- "location": {
8723
- "type": "object",
8724
- "fieldDescription": "\n\nSpecifies where the background script will be located inside Jira, and any location-specific configuration.\n Currently, a background script can only be located in the new issue view.\n\n Read about [Issue Background Script Location](/cloud/jira/platform/modules/issue-background-script-location/).\n\n",
8725
- "anyOf": [
8726
- {
8727
- "properties": {
8728
- "type": {
8729
- "enum": [
8730
- "issue_view",
8731
- "ISSUE_VIEW"
8732
- ],
8733
- "type": "string",
8734
- "fieldDescription": "\n\nThe type field must be set to 'issue-view'\n\n"
8735
- },
8736
- "shouldReloadOnRefresh": {
8737
- "type": "boolean",
8738
- "fieldDescription": "\n\nWhether the background script iframe should reload when the issue is refreshed.\n\n"
8739
- }
8740
- },
8741
- "required": [
8742
- "type"
8743
- ],
8744
- "shortClassName": "issueViewBackgroundScriptLocationBean",
8745
- "type": "object",
8746
- "title": "Issue Background Script Location",
8747
- "description": "\n\nDescribes the location of the issue background script module.\n\n"
8748
- }
8749
- ]
8750
- },
8751
- "url": {
8752
- "format": "uri",
8753
- "type": "string",
8754
- "fieldDescription": "\n\nThe URL of the app resource that serves the iframe containing the background script. \n As with other app iframes, the iframe must load all.js. \n This URL does not support [context parameters](/cloud/jira/platform/context-parameters/). \n This URL must be relative to the app's baseUrl.\n\n"
8755
- },
8756
- "key": {
8757
- "$ref": "#/definitions/ModuleKeySchema"
8758
- }
8759
- },
8760
- "required": [
8761
- "key"
8762
- ]
8763
- },
8764
- "minItems": 1
8765
- },
8766
8872
  "connect-jira:lifecycle": {
8767
8873
  "type": "array",
8768
8874
  "items": {
@@ -8965,10 +9071,10 @@
8965
9071
  "type": "object",
8966
9072
  "anyOf": [
8967
9073
  {
8968
- "$ref": "#/definitions/compositeCondition"
9074
+ "$ref": "#/definitions/singleCondition"
8969
9075
  },
8970
9076
  {
8971
- "$ref": "#/definitions/singleCondition"
9077
+ "$ref": "#/definitions/compositeCondition"
8972
9078
  }
8973
9079
  ]
8974
9080
  },
@@ -9020,10 +9126,10 @@
9020
9126
  "type": "object",
9021
9127
  "anyOf": [
9022
9128
  {
9023
- "$ref": "#/definitions/singleCondition"
9129
+ "$ref": "#/definitions/compositeCondition"
9024
9130
  },
9025
9131
  {
9026
- "$ref": "#/definitions/compositeCondition"
9132
+ "$ref": "#/definitions/singleCondition"
9027
9133
  }
9028
9134
  ]
9029
9135
  },
@@ -9038,7 +9144,6 @@
9038
9144
  "fieldDescription": "\n\nSpecifies entity properties which will be returned inside JSON body. If not specified no properties will be returned.\n\n Currently this is supported only in Jira webhooks, for all events that support <a href=\"/cloud/jira/platform/jira-entity-properties/\">Entity Properties</a>.\n Note that properties won't be returned for entity-deleted events, since the properties are already deleted by the time the webhook is sent.\n\n"
9039
9145
  },
9040
9146
  "url": {
9041
- "format": "uri",
9042
9147
  "type": "string",
9043
9148
  "fieldDescription": "\n\nSpecifies your add-on's POST webhook handler URL. This property must be a URL relative to the add-on's baseUrl.\n\n"
9044
9149
  },
@@ -9275,48 +9380,50 @@
9275
9380
  "anyOf": [
9276
9381
  {
9277
9382
  "properties": {
9278
- "size": {
9279
- "enum": [
9280
- "small",
9281
- "SMALL",
9282
- "medium",
9283
- "MEDIUM",
9284
- "large",
9285
- "LARGE",
9286
- "x-large",
9287
- "X-LARGE",
9288
- "fullscreen",
9289
- "FULLSCREEN",
9290
- "maximum",
9291
- "MAXIMUM"
9292
- ],
9383
+ "offsetX": {
9384
+ "maxLength": 10,
9293
9385
  "type": "string",
9294
- "fieldDescription": "\n\nSets the size of the dialog.\n\n <p>\n This option is used instead of the 'height' and 'width' options.\n </p>\n\n"
9386
+ "fieldDescription": "\n\nSets an offset distance of the inline-dialog from the trigger element along the x-axis in pixels\n\n"
9295
9387
  },
9296
- "chrome": {
9297
- "type": "boolean",
9298
- "fieldDescription": "\n\nWhether the dialog should contain the AUI header and buttons.\n\n",
9299
- "defaultValue": "true"
9388
+ "offsetY": {
9389
+ "maxLength": 10,
9390
+ "type": "string",
9391
+ "fieldDescription": "\n\nSets an offset distance of the inline-dialog from the trigger element along the y-axis in pixels\n\n"
9300
9392
  },
9301
9393
  "width": {
9302
9394
  "maxLength": 10,
9303
9395
  "type": "string",
9304
9396
  "fieldDescription": "\n\nSets how wide the dialog is in pixels.\n\n"
9305
9397
  },
9306
- "header": {
9307
- "$ref": "#/definitions/i18nProperty",
9308
- "fieldDescription": "\n\nThe header text for the dialog, if chrome is enabled.\n\n"
9398
+ "onTop": {
9399
+ "type": "boolean",
9400
+ "fieldDescription": "\n\nDetermines if the dialog should be shown above the trigger or not. If this option is true but there is insufficient room above the trigger the inline-dialog will be flipped to display below it\n\n"
9309
9401
  },
9310
- "height": {
9311
- "maxLength": 10,
9312
- "type": "string",
9313
- "fieldDescription": "\n\nSets how high the dialog is in pixels\n\n"
9402
+ "showDelay": {
9403
+ "type": "integer",
9404
+ "fieldDescription": "\n\nDetermines how long in milliseconds after a show trigger is fired (such as a trigger click) until the dialog is shown\n\n"
9405
+ },
9406
+ "closeOthers": {
9407
+ "type": "boolean",
9408
+ "fieldDescription": "\n\nDetermines if all other dialogs on the screen are closed when this one is opened\n\n"
9409
+ },
9410
+ "persistent": {
9411
+ "type": "boolean",
9412
+ "fieldDescription": "\n\nThis option, ignores the 'closeOthers' option\n\n"
9413
+ },
9414
+ "onHover": {
9415
+ "type": "boolean",
9416
+ "fieldDescription": "\n\nDetermines whether the inline-Dialog will show on a mouseOver or mouseClick of the trigger\n\n"
9417
+ },
9418
+ "isRelativeToMouse": {
9419
+ "type": "boolean",
9420
+ "fieldDescription": "\n\nDetermines if the dialog should be shown relative to where the mouse is at the time of the event trigger (normally a click) if set to false the dialog will show aligned to the left of the trigger with the arrow showing at the center\n\n"
9314
9421
  }
9315
9422
  },
9316
- "shortClassName": "dialogOptions",
9423
+ "shortClassName": "inlineDialogOptions",
9317
9424
  "type": "object",
9318
- "title": "Dialog Options",
9319
- "description": "\n\nOptions for a modal dialog <a href=\"../web-item-target/\">web item target</a> or <a href=\"../dialog/\">common module</a>.\n\n <p>\n These options are a subset of those available via the <a href=\"../../jsapi/dialog/\">JavaScript API</a>.\n </p>\n\n <h2>Web Item Example</h2>\n\n\n\n\n\n {\n \"target\": {\n \"type\": \"dialog\",\n \"options\": {\n \"height\": \"100px\",\n \"width\": \"200px\"\n }\n }\n }\n\n\n\n\n <h2>Dialog Example</h2>\n\n\n\n\n\n {\n \"modules\": {\n \"dialogs\": [\n {\n \"url\": \"/my-dialog-content\",\n \"options\": {\n \"size\": \"fullscreen\",\n \"header\": {\n \"value\": \"Example Dialog\"\n }\n },\n \"key\": \"dialog-module-key\"\n }\n ]\n }\n }\n\n\n"
9425
+ "title": "Inline Dialog Options",
9426
+ "description": "\n\nOptions for an inline dialog target\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"target\": {\n \"type\": \"inlinedialog\",\n \"options\": {\n \"onHover\": true,\n \"offsetX\": \"30px\",\n \"offsetY\": \"20px\"\n }\n }\n }\n\n\n"
9320
9427
  },
9321
9428
  {
9322
9429
  "properties": {
@@ -9336,50 +9443,48 @@
9336
9443
  },
9337
9444
  {
9338
9445
  "properties": {
9339
- "offsetX": {
9340
- "maxLength": 10,
9446
+ "size": {
9447
+ "enum": [
9448
+ "small",
9449
+ "SMALL",
9450
+ "medium",
9451
+ "MEDIUM",
9452
+ "large",
9453
+ "LARGE",
9454
+ "x-large",
9455
+ "X-LARGE",
9456
+ "fullscreen",
9457
+ "FULLSCREEN",
9458
+ "maximum",
9459
+ "MAXIMUM"
9460
+ ],
9341
9461
  "type": "string",
9342
- "fieldDescription": "\n\nSets an offset distance of the inline-dialog from the trigger element along the x-axis in pixels\n\n"
9462
+ "fieldDescription": "\n\nSets the size of the dialog.\n\n <p>\n This option is used instead of the 'height' and 'width' options.\n </p>\n\n"
9343
9463
  },
9344
- "offsetY": {
9345
- "maxLength": 10,
9346
- "type": "string",
9347
- "fieldDescription": "\n\nSets an offset distance of the inline-dialog from the trigger element along the y-axis in pixels\n\n"
9464
+ "chrome": {
9465
+ "type": "boolean",
9466
+ "fieldDescription": "\n\nWhether the dialog should contain the AUI header and buttons.\n\n",
9467
+ "defaultValue": "true"
9348
9468
  },
9349
9469
  "width": {
9350
9470
  "maxLength": 10,
9351
9471
  "type": "string",
9352
9472
  "fieldDescription": "\n\nSets how wide the dialog is in pixels.\n\n"
9353
9473
  },
9354
- "onTop": {
9355
- "type": "boolean",
9356
- "fieldDescription": "\n\nDetermines if the dialog should be shown above the trigger or not. If this option is true but there is insufficient room above the trigger the inline-dialog will be flipped to display below it\n\n"
9357
- },
9358
- "showDelay": {
9359
- "type": "integer",
9360
- "fieldDescription": "\n\nDetermines how long in milliseconds after a show trigger is fired (such as a trigger click) until the dialog is shown\n\n"
9361
- },
9362
- "closeOthers": {
9363
- "type": "boolean",
9364
- "fieldDescription": "\n\nDetermines if all other dialogs on the screen are closed when this one is opened\n\n"
9365
- },
9366
- "persistent": {
9367
- "type": "boolean",
9368
- "fieldDescription": "\n\nThis option, ignores the 'closeOthers' option\n\n"
9369
- },
9370
- "onHover": {
9371
- "type": "boolean",
9372
- "fieldDescription": "\n\nDetermines whether the inline-Dialog will show on a mouseOver or mouseClick of the trigger\n\n"
9474
+ "header": {
9475
+ "$ref": "#/definitions/i18nProperty",
9476
+ "fieldDescription": "\n\nThe header text for the dialog, if chrome is enabled.\n\n"
9373
9477
  },
9374
- "isRelativeToMouse": {
9375
- "type": "boolean",
9376
- "fieldDescription": "\n\nDetermines if the dialog should be shown relative to where the mouse is at the time of the event trigger (normally a click) if set to false the dialog will show aligned to the left of the trigger with the arrow showing at the center\n\n"
9478
+ "height": {
9479
+ "maxLength": 10,
9480
+ "type": "string",
9481
+ "fieldDescription": "\n\nSets how high the dialog is in pixels\n\n"
9377
9482
  }
9378
9483
  },
9379
- "shortClassName": "inlineDialogOptions",
9484
+ "shortClassName": "dialogOptions",
9380
9485
  "type": "object",
9381
- "title": "Inline Dialog Options",
9382
- "description": "\n\nOptions for an inline dialog target\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"target\": {\n \"type\": \"inlinedialog\",\n \"options\": {\n \"onHover\": true,\n \"offsetX\": \"30px\",\n \"offsetY\": \"20px\"\n }\n }\n }\n\n\n"
9486
+ "title": "Dialog Options",
9487
+ "description": "\n\nOptions for a modal dialog <a href=\"../web-item-target/\">web item target</a> or <a href=\"../dialog/\">common module</a>.\n\n <p>\n These options are a subset of those available via the <a href=\"../../jsapi/dialog/\">JavaScript API</a>.\n </p>\n\n <h2>Web Item Example</h2>\n\n\n\n\n\n {\n \"target\": {\n \"type\": \"dialog\",\n \"options\": {\n \"height\": \"100px\",\n \"width\": \"200px\"\n }\n }\n }\n\n\n\n\n <h2>Dialog Example</h2>\n\n\n\n\n\n {\n \"modules\": {\n \"dialogs\": [\n {\n \"url\": \"/my-dialog-content\",\n \"options\": {\n \"size\": \"fullscreen\",\n \"header\": {\n \"value\": \"Example Dialog\"\n }\n },\n \"key\": \"dialog-module-key\"\n }\n ]\n }\n }\n\n\n"
9383
9488
  }
9384
9489
  ]
9385
9490
  },
@@ -9470,7 +9575,37 @@
9470
9575
  "type": "object",
9471
9576
  "anyOf": [
9472
9577
  {
9473
- "$ref": "#"
9578
+ "properties": {
9579
+ "conditions": {
9580
+ "items": {
9581
+ "type": "object",
9582
+ "anyOf": [
9583
+ {
9584
+ "$ref": "#"
9585
+ },
9586
+ {
9587
+ "$ref": "#/definitions/singleCondition"
9588
+ }
9589
+ ]
9590
+ },
9591
+ "type": "array",
9592
+ "fieldDescription": "\n\nThe conditions to compose using the specific logical operator.\n\n"
9593
+ },
9594
+ "type": {
9595
+ "enum": [
9596
+ "and",
9597
+ "AND",
9598
+ "or",
9599
+ "OR"
9600
+ ],
9601
+ "type": "string",
9602
+ "fieldDescription": "\n\nDefines what logical operator is used to evaluate its collection of condition elements.\n\n"
9603
+ }
9604
+ },
9605
+ "shortClassName": "compositeConditionBean",
9606
+ "type": "object",
9607
+ "title": "Composite Condition",
9608
+ "description": "\n\nComposite Conditions are composed of a collection of [Single Condition](../single-condition/) / Composite Conditions\n and a type attribute.\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"conditions\": [\n {\n \"or\": [\n {\n \"condition\": \"can_attach_file_to_issue\",\n \"invert\": false\n },\n {\n \"condition\": \"is_issue_assigned_to_current_user\",\n \"invert\": false\n }\n ]\n },\n {\n \"condition\": \"user_is_logged_in\",\n \"invert\": false\n }\n ]\n }\n\n\n"
9474
9609
  },
9475
9610
  {
9476
9611
  "$ref": "#/definitions/singleCondition"
@@ -9699,33 +9834,6 @@
9699
9834
  "items": {
9700
9835
  "type": "object",
9701
9836
  "anyOf": [
9702
- {
9703
- "properties": {
9704
- "condition": {
9705
- "maxLength": 100,
9706
- "type": "string",
9707
- "fieldDescription": "\n\nA string indicating the name of the condition\n\n"
9708
- },
9709
- "invert": {
9710
- "type": "boolean",
9711
- "fieldDescription": "\n\nA flag indicating whether to invert the boolean result of the condition.\n\n",
9712
- "defaultValue": "false"
9713
- },
9714
- "params": {
9715
- "additionalProperties": true,
9716
- "type": "object",
9717
- "fieldTitle": "Object",
9718
- "fieldDescription": "\n\nThis object represents a map of key/value pairs, where each property name and value corresponds to the parameter name and value respectively.\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"params\": {\n \"someOtherProperty\": \"someValue\",\n \"myCustomProperty\": \"myValue\"\n }\n }\n\n\n"
9719
- }
9720
- },
9721
- "required": [
9722
- "condition"
9723
- ],
9724
- "shortClassName": "singleConditionBean",
9725
- "type": "object",
9726
- "title": "Single Condition",
9727
- "description": "\n\nSingle Conditions are either provided by the host application. See the complete documentation of\n [Conditions](../../conditions/) for more information.\n\n To invert a condition, add the attribute ``invert=\"true\"`` to the condition element.\n This is useful where you want to show the section if a certain condition is not satisfied.\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"condition\": \"user_is_logged_in\",\n \"invert\": false\n }\n\n\n"
9728
- },
9729
9837
  {
9730
9838
  "properties": {
9731
9839
  "conditions": {
@@ -9758,6 +9866,33 @@
9758
9866
  "type": "object",
9759
9867
  "title": "Composite Condition",
9760
9868
  "description": "\n\nComposite Conditions are composed of a collection of [Single Condition](../single-condition/) / Composite Conditions\n and a type attribute.\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"conditions\": [\n {\n \"or\": [\n {\n \"condition\": \"can_attach_file_to_issue\",\n \"invert\": false\n },\n {\n \"condition\": \"is_issue_assigned_to_current_user\",\n \"invert\": false\n }\n ]\n },\n {\n \"condition\": \"user_is_logged_in\",\n \"invert\": false\n }\n ]\n }\n\n\n"
9869
+ },
9870
+ {
9871
+ "properties": {
9872
+ "condition": {
9873
+ "maxLength": 100,
9874
+ "type": "string",
9875
+ "fieldDescription": "\n\nA string indicating the name of the condition\n\n"
9876
+ },
9877
+ "invert": {
9878
+ "type": "boolean",
9879
+ "fieldDescription": "\n\nA flag indicating whether to invert the boolean result of the condition.\n\n",
9880
+ "defaultValue": "false"
9881
+ },
9882
+ "params": {
9883
+ "additionalProperties": true,
9884
+ "type": "object",
9885
+ "fieldTitle": "Object",
9886
+ "fieldDescription": "\n\nThis object represents a map of key/value pairs, where each property name and value corresponds to the parameter name and value respectively.\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"params\": {\n \"someOtherProperty\": \"someValue\",\n \"myCustomProperty\": \"myValue\"\n }\n }\n\n\n"
9887
+ }
9888
+ },
9889
+ "required": [
9890
+ "condition"
9891
+ ],
9892
+ "shortClassName": "singleConditionBean",
9893
+ "type": "object",
9894
+ "title": "Single Condition",
9895
+ "description": "\n\nSingle Conditions are either provided by the host application. See the complete documentation of\n [Conditions](../../conditions/) for more information.\n\n To invert a condition, add the attribute ``invert=\"true\"`` to the condition element.\n This is useful where you want to show the section if a certain condition is not satisfied.\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"condition\": \"user_is_logged_in\",\n \"invert\": false\n }\n\n\n"
9761
9896
  }
9762
9897
  ]
9763
9898
  },
@@ -10031,6 +10166,38 @@
10031
10166
  "items": {
10032
10167
  "type": "object",
10033
10168
  "anyOf": [
10169
+ {
10170
+ "properties": {
10171
+ "label": {
10172
+ "$ref": "#/definitions/i18nProperty",
10173
+ "fieldDescription": "\n\nText which will appear inside the button\n\n"
10174
+ },
10175
+ "type": {
10176
+ "enum": [
10177
+ "button",
10178
+ "BUTTON"
10179
+ ],
10180
+ "type": "string",
10181
+ "fieldDescription": "\n\nThe type field must be set to 'button'\n\n"
10182
+ },
10183
+ "key": {
10184
+ "pattern": "^[a-zA-Z0-9-]+$",
10185
+ "maxLength": 100,
10186
+ "type": "string",
10187
+ "fieldDescription": "\n\nA key to identify the control. Keys must only contain alphanumeric characters and dashes, and must be unique\n\n"
10188
+ }
10189
+ },
10190
+ "required": [
10191
+ "label",
10192
+ "type",
10193
+ "key"
10194
+ ],
10195
+ "additionalProperties": true,
10196
+ "shortClassName": "buttonControlBean",
10197
+ "type": "object",
10198
+ "title": "ButtonControl",
10199
+ "description": "\n\nDefines a button which may appear in control extension points such as the property panel\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"type\": \"button\",\n \"label\": {\n \"value\": \"My Custom Control 0\"\n },\n \"key\": \"my-custom-control-0\"\n }\n\n\n"
10200
+ },
10034
10201
  {
10035
10202
  "properties": {
10036
10203
  "controls": {
@@ -10187,38 +10354,6 @@
10187
10354
  "type": "object",
10188
10355
  "title": "TextControl",
10189
10356
  "description": "\n\nDefines a text field which may appear in control extension points such as the property panel\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"type\": \"button\",\n \"label\": {\n \"value\": \"My Custom Control 0\"\n },\n \"key\": \"my-custom-control-0\"\n }\n\n\n"
10190
- },
10191
- {
10192
- "properties": {
10193
- "label": {
10194
- "$ref": "#/definitions/i18nProperty",
10195
- "fieldDescription": "\n\nText which will appear inside the button\n\n"
10196
- },
10197
- "type": {
10198
- "enum": [
10199
- "button",
10200
- "BUTTON"
10201
- ],
10202
- "type": "string",
10203
- "fieldDescription": "\n\nThe type field must be set to 'button'\n\n"
10204
- },
10205
- "key": {
10206
- "pattern": "^[a-zA-Z0-9-]+$",
10207
- "maxLength": 100,
10208
- "type": "string",
10209
- "fieldDescription": "\n\nA key to identify the control. Keys must only contain alphanumeric characters and dashes, and must be unique\n\n"
10210
- }
10211
- },
10212
- "required": [
10213
- "label",
10214
- "type",
10215
- "key"
10216
- ],
10217
- "additionalProperties": true,
10218
- "shortClassName": "buttonControlBean",
10219
- "type": "object",
10220
- "title": "ButtonControl",
10221
- "description": "\n\nDefines a button which may appear in control extension points such as the property panel\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"type\": \"button\",\n \"label\": {\n \"value\": \"My Custom Control 0\"\n },\n \"key\": \"my-custom-control-0\"\n }\n\n\n"
10222
10357
  }
10223
10358
  ]
10224
10359
  },
@@ -10515,35 +10650,72 @@
10515
10650
  "anyOf": [
10516
10651
  {
10517
10652
  "properties": {
10653
+ "controls": {
10654
+ "items": {
10655
+ "properties": {
10656
+ "macroParameterValue": {
10657
+ "maxLength": 10000,
10658
+ "type": "string",
10659
+ "fieldDescription": "\n\nThe value that will be assigned to a macro parameter when this toggle is clicked\n\n"
10660
+ },
10661
+ "label": {
10662
+ "$ref": "#/definitions/i18nProperty",
10663
+ "fieldDescription": "\n\nText which will appear inside the button\n\n"
10664
+ },
10665
+ "type": {
10666
+ "enum": [
10667
+ "togglebutton",
10668
+ "TOGGLEBUTTON"
10669
+ ],
10670
+ "type": "string",
10671
+ "fieldDescription": "\n\nThe type field must be set to 'togglebutton'\n\n"
10672
+ },
10673
+ "key": {
10674
+ "pattern": "^[a-zA-Z0-9-]+$",
10675
+ "maxLength": 100,
10676
+ "type": "string",
10677
+ "fieldDescription": "\n\nA key to identify the control. Keys must only contain alphanumeric characters and dashes, and must be unique\n\n"
10678
+ }
10679
+ },
10680
+ "required": [
10681
+ "macroParameterValue",
10682
+ "label",
10683
+ "type",
10684
+ "key"
10685
+ ],
10686
+ "additionalProperties": true,
10687
+ "shortClassName": "macroToggleButtonControlBean",
10688
+ "type": "object",
10689
+ "title": "ToggleButtonControl",
10690
+ "description": "\n\nDefines a toggle button which appears inside a ToggleGroup\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"type\": \"togglebutton\",\n \"macroParameterValue\": \"macroParameterValue 0\",\n \"label\": {\n \"value\": \"My Custom Control 0\"\n },\n \"key\": \"my-custom-toggle-button-0\"\n }\n\n\n"
10691
+ },
10692
+ "type": "array",
10693
+ "fieldDescription": "\n\nToggle buttons which will appear in the toggle group\n\n"
10694
+ },
10518
10695
  "macroParameter": {
10696
+ "pattern": "[-_a-z0-9\\.]+",
10519
10697
  "maxLength": 100,
10520
10698
  "type": "string",
10521
- "fieldDescription": "\n\nThe Macro Parameter identifier used to store the text\n\n"
10699
+ "fieldDescription": "\n\nThe macro parameter identifier used to store the toggle state.\n It must only contain lowercase alphanumeric characters, dashes, underscores, dots and must not contain any spaces.\n\n"
10522
10700
  },
10523
10701
  "type": {
10524
10702
  "enum": [
10525
- "text",
10526
- "TEXT"
10703
+ "togglegroup",
10704
+ "TOGGLEGROUP"
10527
10705
  ],
10528
10706
  "type": "string",
10529
- "fieldDescription": "\n\nThe type field must be set to 'text'\n\n"
10530
- },
10531
- "key": {
10532
- "pattern": "^[a-zA-Z0-9-]+$",
10533
- "maxLength": 100,
10534
- "type": "string",
10535
- "fieldDescription": "\n\nA key to identify this module.\n\n This key must be unique relative to the add on, with the exception of Confluence macros: Their keys need to be\n globally unique.\n\n Keys must only contain alphanumeric characters and dashes.\n\n The key is used to generate the url to your add-on's module. The url is generated as a combination of your add-on\n key and module key. For example, an add-on which looks like:\n\n {\n \"key\": \"my-addon\",\n \"modules\": {\n \"configurePage\": {\n \"key\": \"configure-me\",\n }\n }\n }\n\n Will have a configuration page module with a URL of `/plugins/servlet/ac/my-addon/configure-me`.\n\n"
10707
+ "fieldDescription": "\n\nThe type field must be set to 'togglegroup'\n\n"
10536
10708
  }
10537
10709
  },
10538
10710
  "required": [
10711
+ "controls",
10539
10712
  "macroParameter",
10540
- "type",
10541
- "key"
10713
+ "type"
10542
10714
  ],
10543
- "shortClassName": "textControlBean",
10715
+ "shortClassName": "macroToggleGroupBean",
10544
10716
  "type": "object",
10545
- "title": "TextControl",
10546
- "description": "\n\nDefines a text field which may appear in control extension points such as the property panel\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"type\": \"button\",\n \"label\": {\n \"value\": \"My Custom Control 0\"\n },\n \"key\": \"my-custom-control-0\"\n }\n\n\n"
10717
+ "title": "ToggleGroup",
10718
+ "description": "\n\nDefines a ToggleGroup which may appear in control extension points such as the property panel\n\n <p><b>Example</b></p>\n\n\n\n\n\n [\n {\n \"type\": \"togglegroup\",\n \"macroParameter\": \"toggleGroupMacroParameter\",\n \"controls\": [\n {\n \"type\": \"togglebutton\",\n \"macroParameterValue\": \"macroParameterValue 0\",\n \"label\": {\n \"value\": \"My Custom Control 0\"\n },\n \"key\": \"my-custom-toggle-button-0\"\n },\n {\n \"type\": \"togglebutton\",\n \"macroParameterValue\": \"macroParameterValue 1\",\n \"label\": {\n \"value\": \"My Custom Control 1\"\n },\n \"key\": \"my-custom-toggle-button-1\"\n }\n ]\n }\n ]\n\n\n"
10547
10719
  },
10548
10720
  {
10549
10721
  "properties": {
@@ -10579,81 +10751,52 @@
10579
10751
  },
10580
10752
  {
10581
10753
  "properties": {
10582
- "controls": {
10583
- "items": {
10584
- "properties": {
10585
- "label": {
10586
- "$ref": "#/definitions/i18nProperty",
10587
- "fieldDescription": "\n\nText which will appear inside the button\n\n"
10588
- },
10589
- "type": {
10590
- "enum": [
10591
- "button",
10592
- "BUTTON"
10593
- ],
10594
- "type": "string",
10595
- "fieldDescription": "\n\nThe type field must be set to 'button'\n\n"
10596
- },
10597
- "key": {
10598
- "pattern": "^[a-zA-Z0-9-]+$",
10599
- "maxLength": 100,
10600
- "type": "string",
10601
- "fieldDescription": "\n\nA key to identify the control. Keys must only contain alphanumeric characters and dashes, and must be unique\n\n"
10602
- }
10603
- },
10604
- "required": [
10605
- "label",
10606
- "type",
10607
- "key"
10608
- ],
10609
- "additionalProperties": true,
10610
- "shortClassName": "buttonControlBean",
10611
- "type": "object",
10612
- "title": "ButtonControl",
10613
- "description": "\n\nDefines a button which may appear in control extension points such as the property panel\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"type\": \"button\",\n \"label\": {\n \"value\": \"My Custom Control 0\"\n },\n \"key\": \"my-custom-control-0\"\n }\n\n\n"
10614
- },
10615
- "type": "array",
10616
- "fieldDescription": "\n\nControls which will appear in the control group\n\n"
10754
+ "macroParameter": {
10755
+ "maxLength": 100,
10756
+ "type": "string",
10757
+ "fieldDescription": "\n\nThe Macro Parameter identifier used to store the text\n\n"
10617
10758
  },
10618
10759
  "type": {
10619
10760
  "enum": [
10620
- "group",
10621
- "GROUP"
10761
+ "text",
10762
+ "TEXT"
10622
10763
  ],
10623
10764
  "type": "string",
10624
- "fieldDescription": "\n\nThe type field must be set to 'group'\n\n"
10765
+ "fieldDescription": "\n\nThe type field must be set to 'text'\n\n"
10766
+ },
10767
+ "key": {
10768
+ "pattern": "^[a-zA-Z0-9-]+$",
10769
+ "maxLength": 100,
10770
+ "type": "string",
10771
+ "fieldDescription": "\n\nA key to identify this module.\n\n This key must be unique relative to the add on, with the exception of Confluence macros: Their keys need to be\n globally unique.\n\n Keys must only contain alphanumeric characters and dashes.\n\n The key is used to generate the url to your add-on's module. The url is generated as a combination of your add-on\n key and module key. For example, an add-on which looks like:\n\n {\n \"key\": \"my-addon\",\n \"modules\": {\n \"configurePage\": {\n \"key\": \"configure-me\",\n }\n }\n }\n\n Will have a configuration page module with a URL of `/plugins/servlet/ac/my-addon/configure-me`.\n\n"
10625
10772
  }
10626
10773
  },
10627
10774
  "required": [
10628
- "controls",
10629
- "type"
10775
+ "macroParameter",
10776
+ "type",
10777
+ "key"
10630
10778
  ],
10631
- "shortClassName": "controlGroupBean",
10779
+ "shortClassName": "textControlBean",
10632
10780
  "type": "object",
10633
- "title": "ControlGroup",
10634
- "description": "\n\nDefines a ControlGroup which may appear in control extension points such as the property panel\n\n <p><b>Example</b></p>\n\n\n\n\n\n [\n {\n \"type\": \"group\",\n \"controls\": [\n {\n \"type\": \"button\",\n \"label\": {\n \"value\": \"My Custom Control 0\"\n },\n \"key\": \"my-custom-control-0\"\n },\n {\n \"type\": \"button\",\n \"label\": {\n \"value\": \"My Custom Control 1\"\n },\n \"key\": \"my-custom-control-1\"\n }\n ]\n }\n ]\n\n\n"
10781
+ "title": "TextControl",
10782
+ "description": "\n\nDefines a text field which may appear in control extension points such as the property panel\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"type\": \"button\",\n \"label\": {\n \"value\": \"My Custom Control 0\"\n },\n \"key\": \"my-custom-control-0\"\n }\n\n\n"
10635
10783
  },
10636
10784
  {
10637
10785
  "properties": {
10638
10786
  "controls": {
10639
10787
  "items": {
10640
10788
  "properties": {
10641
- "macroParameterValue": {
10642
- "maxLength": 10000,
10643
- "type": "string",
10644
- "fieldDescription": "\n\nThe value that will be assigned to a macro parameter when this toggle is clicked\n\n"
10645
- },
10646
10789
  "label": {
10647
10790
  "$ref": "#/definitions/i18nProperty",
10648
10791
  "fieldDescription": "\n\nText which will appear inside the button\n\n"
10649
10792
  },
10650
10793
  "type": {
10651
10794
  "enum": [
10652
- "togglebutton",
10653
- "TOGGLEBUTTON"
10795
+ "button",
10796
+ "BUTTON"
10654
10797
  ],
10655
10798
  "type": "string",
10656
- "fieldDescription": "\n\nThe type field must be set to 'togglebutton'\n\n"
10799
+ "fieldDescription": "\n\nThe type field must be set to 'button'\n\n"
10657
10800
  },
10658
10801
  "key": {
10659
10802
  "pattern": "^[a-zA-Z0-9-]+$",
@@ -10663,44 +10806,36 @@
10663
10806
  }
10664
10807
  },
10665
10808
  "required": [
10666
- "macroParameterValue",
10667
10809
  "label",
10668
10810
  "type",
10669
10811
  "key"
10670
10812
  ],
10671
10813
  "additionalProperties": true,
10672
- "shortClassName": "macroToggleButtonControlBean",
10814
+ "shortClassName": "buttonControlBean",
10673
10815
  "type": "object",
10674
- "title": "ToggleButtonControl",
10675
- "description": "\n\nDefines a toggle button which appears inside a ToggleGroup\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"type\": \"togglebutton\",\n \"macroParameterValue\": \"macroParameterValue 0\",\n \"label\": {\n \"value\": \"My Custom Control 0\"\n },\n \"key\": \"my-custom-toggle-button-0\"\n }\n\n\n"
10816
+ "title": "ButtonControl",
10817
+ "description": "\n\nDefines a button which may appear in control extension points such as the property panel\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"type\": \"button\",\n \"label\": {\n \"value\": \"My Custom Control 0\"\n },\n \"key\": \"my-custom-control-0\"\n }\n\n\n"
10676
10818
  },
10677
10819
  "type": "array",
10678
- "fieldDescription": "\n\nToggle buttons which will appear in the toggle group\n\n"
10679
- },
10680
- "macroParameter": {
10681
- "pattern": "[-_a-z0-9\\.]+",
10682
- "maxLength": 100,
10683
- "type": "string",
10684
- "fieldDescription": "\n\nThe macro parameter identifier used to store the toggle state.\n It must only contain lowercase alphanumeric characters, dashes, underscores, dots and must not contain any spaces.\n\n"
10820
+ "fieldDescription": "\n\nControls which will appear in the control group\n\n"
10685
10821
  },
10686
10822
  "type": {
10687
10823
  "enum": [
10688
- "togglegroup",
10689
- "TOGGLEGROUP"
10824
+ "group",
10825
+ "GROUP"
10690
10826
  ],
10691
10827
  "type": "string",
10692
- "fieldDescription": "\n\nThe type field must be set to 'togglegroup'\n\n"
10828
+ "fieldDescription": "\n\nThe type field must be set to 'group'\n\n"
10693
10829
  }
10694
10830
  },
10695
10831
  "required": [
10696
10832
  "controls",
10697
- "macroParameter",
10698
10833
  "type"
10699
10834
  ],
10700
- "shortClassName": "macroToggleGroupBean",
10835
+ "shortClassName": "controlGroupBean",
10701
10836
  "type": "object",
10702
- "title": "ToggleGroup",
10703
- "description": "\n\nDefines a ToggleGroup which may appear in control extension points such as the property panel\n\n <p><b>Example</b></p>\n\n\n\n\n\n [\n {\n \"type\": \"togglegroup\",\n \"macroParameter\": \"toggleGroupMacroParameter\",\n \"controls\": [\n {\n \"type\": \"togglebutton\",\n \"macroParameterValue\": \"macroParameterValue 0\",\n \"label\": {\n \"value\": \"My Custom Control 0\"\n },\n \"key\": \"my-custom-toggle-button-0\"\n },\n {\n \"type\": \"togglebutton\",\n \"macroParameterValue\": \"macroParameterValue 1\",\n \"label\": {\n \"value\": \"My Custom Control 1\"\n },\n \"key\": \"my-custom-toggle-button-1\"\n }\n ]\n }\n ]\n\n\n"
10837
+ "title": "ControlGroup",
10838
+ "description": "\n\nDefines a ControlGroup which may appear in control extension points such as the property panel\n\n <p><b>Example</b></p>\n\n\n\n\n\n [\n {\n \"type\": \"group\",\n \"controls\": [\n {\n \"type\": \"button\",\n \"label\": {\n \"value\": \"My Custom Control 0\"\n },\n \"key\": \"my-custom-control-0\"\n },\n {\n \"type\": \"button\",\n \"label\": {\n \"value\": \"My Custom Control 1\"\n },\n \"key\": \"my-custom-control-1\"\n }\n ]\n }\n ]\n\n\n"
10704
10839
  }
10705
10840
  ]
10706
10841
  },
@@ -10903,10 +11038,10 @@
10903
11038
  "type": "object",
10904
11039
  "anyOf": [
10905
11040
  {
10906
- "$ref": "#/definitions/singleCondition"
11041
+ "$ref": "#/definitions/compositeCondition"
10907
11042
  },
10908
11043
  {
10909
- "$ref": "#/definitions/compositeCondition"
11044
+ "$ref": "#/definitions/singleCondition"
10910
11045
  }
10911
11046
  ]
10912
11047
  },
@@ -10936,51 +11071,6 @@
10936
11071
  "type": "object",
10937
11072
  "fieldDescription": "\n\n<p>An object containing options which vary based on the type of web item target you are implementing.</p>\n\n <p>Currently-allowed options are:</p>\n <ul>\n <li><a href=\"../inline-dialog-options/\">Inline Dialog Options</a> when type is \"inlinedialog\", and</li>\n <li><a href=\"../dialog-options/\">Dialog Options</a> when type is \"dialog\"</li>\n <li><a href=\"../dialog-module-options/\">Dialog Module Options</a> when type is \"dialogmodule\"</li>\n </ul>\n\n",
10938
11073
  "anyOf": [
10939
- {
10940
- "properties": {
10941
- "size": {
10942
- "enum": [
10943
- "small",
10944
- "SMALL",
10945
- "medium",
10946
- "MEDIUM",
10947
- "large",
10948
- "LARGE",
10949
- "x-large",
10950
- "X-LARGE",
10951
- "fullscreen",
10952
- "FULLSCREEN",
10953
- "maximum",
10954
- "MAXIMUM"
10955
- ],
10956
- "type": "string",
10957
- "fieldDescription": "\n\nSets the size of the dialog.\n\n <p>\n This option is used instead of the 'height' and 'width' options.\n </p>\n\n"
10958
- },
10959
- "chrome": {
10960
- "type": "boolean",
10961
- "fieldDescription": "\n\nWhether the dialog should contain the AUI header and buttons.\n\n",
10962
- "defaultValue": "true"
10963
- },
10964
- "width": {
10965
- "maxLength": 10,
10966
- "type": "string",
10967
- "fieldDescription": "\n\nSets how wide the dialog is in pixels.\n\n"
10968
- },
10969
- "header": {
10970
- "$ref": "#/definitions/i18nProperty",
10971
- "fieldDescription": "\n\nThe header text for the dialog, if chrome is enabled.\n\n"
10972
- },
10973
- "height": {
10974
- "maxLength": 10,
10975
- "type": "string",
10976
- "fieldDescription": "\n\nSets how high the dialog is in pixels\n\n"
10977
- }
10978
- },
10979
- "shortClassName": "dialogOptions",
10980
- "type": "object",
10981
- "title": "Dialog Options",
10982
- "description": "\n\nOptions for a modal dialog <a href=\"../web-item-target/\">web item target</a> or <a href=\"../dialog/\">common module</a>.\n\n <p>\n These options are a subset of those available via the <a href=\"../../jsapi/dialog/\">JavaScript API</a>.\n </p>\n\n <h2>Web Item Example</h2>\n\n\n\n\n\n {\n \"target\": {\n \"type\": \"dialog\",\n \"options\": {\n \"height\": \"100px\",\n \"width\": \"200px\"\n }\n }\n }\n\n\n\n\n <h2>Dialog Example</h2>\n\n\n\n\n\n {\n \"modules\": {\n \"dialogs\": [\n {\n \"url\": \"/my-dialog-content\",\n \"options\": {\n \"size\": \"fullscreen\",\n \"header\": {\n \"value\": \"Example Dialog\"\n }\n },\n \"key\": \"dialog-module-key\"\n }\n ]\n }\n }\n\n\n"
10983
- },
10984
11074
  {
10985
11075
  "properties": {
10986
11076
  "offsetX": {
@@ -11043,6 +11133,51 @@
11043
11133
  "type": "object",
11044
11134
  "title": "Dialog Module Options",
11045
11135
  "description": "\n\nOptions for a web-item targeting a common <a href=\"../dialog/\">dialog module</a>.\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"target\": {\n \"type\": \"dialogmodule\",\n \"options\": {\n \"key\": \"dialog-module-key\"\n }\n }\n }\n\n\n"
11136
+ },
11137
+ {
11138
+ "properties": {
11139
+ "size": {
11140
+ "enum": [
11141
+ "small",
11142
+ "SMALL",
11143
+ "medium",
11144
+ "MEDIUM",
11145
+ "large",
11146
+ "LARGE",
11147
+ "x-large",
11148
+ "X-LARGE",
11149
+ "fullscreen",
11150
+ "FULLSCREEN",
11151
+ "maximum",
11152
+ "MAXIMUM"
11153
+ ],
11154
+ "type": "string",
11155
+ "fieldDescription": "\n\nSets the size of the dialog.\n\n <p>\n This option is used instead of the 'height' and 'width' options.\n </p>\n\n"
11156
+ },
11157
+ "chrome": {
11158
+ "type": "boolean",
11159
+ "fieldDescription": "\n\nWhether the dialog should contain the AUI header and buttons.\n\n",
11160
+ "defaultValue": "true"
11161
+ },
11162
+ "width": {
11163
+ "maxLength": 10,
11164
+ "type": "string",
11165
+ "fieldDescription": "\n\nSets how wide the dialog is in pixels.\n\n"
11166
+ },
11167
+ "header": {
11168
+ "$ref": "#/definitions/i18nProperty",
11169
+ "fieldDescription": "\n\nThe header text for the dialog, if chrome is enabled.\n\n"
11170
+ },
11171
+ "height": {
11172
+ "maxLength": 10,
11173
+ "type": "string",
11174
+ "fieldDescription": "\n\nSets how high the dialog is in pixels\n\n"
11175
+ }
11176
+ },
11177
+ "shortClassName": "dialogOptions",
11178
+ "type": "object",
11179
+ "title": "Dialog Options",
11180
+ "description": "\n\nOptions for a modal dialog <a href=\"../web-item-target/\">web item target</a> or <a href=\"../dialog/\">common module</a>.\n\n <p>\n These options are a subset of those available via the <a href=\"../../jsapi/dialog/\">JavaScript API</a>.\n </p>\n\n <h2>Web Item Example</h2>\n\n\n\n\n\n {\n \"target\": {\n \"type\": \"dialog\",\n \"options\": {\n \"height\": \"100px\",\n \"width\": \"200px\"\n }\n }\n }\n\n\n\n\n <h2>Dialog Example</h2>\n\n\n\n\n\n {\n \"modules\": {\n \"dialogs\": [\n {\n \"url\": \"/my-dialog-content\",\n \"options\": {\n \"size\": \"fullscreen\",\n \"header\": {\n \"value\": \"Example Dialog\"\n }\n },\n \"key\": \"dialog-module-key\"\n }\n ]\n }\n }\n\n\n"
11046
11181
  }
11047
11182
  ]
11048
11183
  },
@@ -12585,6 +12720,33 @@
12585
12720
  "title": "Icon",
12586
12721
  "description": "\n\nDefines an icon to display.\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"icon\": {\n \"width\": 16,\n \"height\": 16,\n \"url\": \"/my-icon.png\"\n }\n }\n\n\n"
12587
12722
  },
12723
+ "singleCondition": {
12724
+ "properties": {
12725
+ "condition": {
12726
+ "maxLength": 100,
12727
+ "type": "string",
12728
+ "fieldDescription": "\n\nA string indicating the name of the condition\n\n"
12729
+ },
12730
+ "invert": {
12731
+ "type": "boolean",
12732
+ "fieldDescription": "\n\nA flag indicating whether to invert the boolean result of the condition.\n\n",
12733
+ "defaultValue": "false"
12734
+ },
12735
+ "params": {
12736
+ "additionalProperties": true,
12737
+ "type": "object",
12738
+ "fieldTitle": "Object",
12739
+ "fieldDescription": "\n\nThis object represents a map of key/value pairs, where each property name and value corresponds to the parameter name and value respectively.\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"params\": {\n \"someOtherProperty\": \"someValue\",\n \"myCustomProperty\": \"myValue\"\n }\n }\n\n\n"
12740
+ }
12741
+ },
12742
+ "required": [
12743
+ "condition"
12744
+ ],
12745
+ "shortClassName": "singleConditionBean",
12746
+ "type": "object",
12747
+ "title": "Single Condition",
12748
+ "description": "\n\nSingle Conditions are either provided by the host application. See the complete documentation of\n [Conditions](../../conditions/) for more information.\n\n To invert a condition, add the attribute ``invert=\"true\"`` to the condition element.\n This is useful where you want to show the section if a certain condition is not satisfied.\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"condition\": \"user_is_logged_in\",\n \"invert\": false\n }\n\n\n"
12749
+ },
12588
12750
  "compositeCondition": {
12589
12751
  "properties": {
12590
12752
  "conditions": {
@@ -12618,33 +12780,6 @@
12618
12780
  "title": "Composite Condition",
12619
12781
  "description": "\n\nComposite Conditions are composed of a collection of [Single Condition](../single-condition/) / Composite Conditions\n and a type attribute.\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"conditions\": [\n {\n \"or\": [\n {\n \"condition\": \"can_attach_file_to_issue\",\n \"invert\": false\n },\n {\n \"condition\": \"is_issue_assigned_to_current_user\",\n \"invert\": false\n }\n ]\n },\n {\n \"condition\": \"user_is_logged_in\",\n \"invert\": false\n }\n ]\n }\n\n\n"
12620
12782
  },
12621
- "singleCondition": {
12622
- "properties": {
12623
- "condition": {
12624
- "maxLength": 100,
12625
- "type": "string",
12626
- "fieldDescription": "\n\nA string indicating the name of the condition\n\n"
12627
- },
12628
- "invert": {
12629
- "type": "boolean",
12630
- "fieldDescription": "\n\nA flag indicating whether to invert the boolean result of the condition.\n\n",
12631
- "defaultValue": "false"
12632
- },
12633
- "params": {
12634
- "additionalProperties": true,
12635
- "type": "object",
12636
- "fieldTitle": "Object",
12637
- "fieldDescription": "\n\nThis object represents a map of key/value pairs, where each property name and value corresponds to the parameter name and value respectively.\n\n <p><b>Example</b></p>\n\n\n\n\n\n {\n \"params\": {\n \"someOtherProperty\": \"someValue\",\n \"myCustomProperty\": \"myValue\"\n }\n }\n\n\n"
12638
- }
12639
- },
12640
- "required": [
12641
- "condition"
12642
- ],
12643
- "shortClassName": "singleConditionBean",
12644
- "type": "object",
12645
- "title": "Single Condition",
12646
- "description": "\n\nSingle Conditions are either provided by the host application. See the complete documentation of\n [Conditions](../../conditions/) for more information.\n\n To invert a condition, add the attribute ``invert=\"true\"`` to the condition element.\n This is useful where you want to show the section if a certain condition is not satisfied.\n\n <h3>Example</h3>\n\n\n\n\n\n {\n \"condition\": \"user_is_logged_in\",\n \"invert\": false\n }\n\n\n"
12647
- },
12648
12783
  "webPanelLayout": {
12649
12784
  "properties": {
12650
12785
  "width": {