diff --git a/sparkjobdefinition/definitions.json b/sparkjobdefinition/definitions.json index 60685e6..a3b74ec 100644 --- a/sparkjobdefinition/definitions.json +++ b/sparkjobdefinition/definitions.json @@ -118,8 +118,7 @@ ], "properties": { "format": { - "description": "The format of the item definition. Supported format: `SparkJobDefinitionV1`.", - "type": "string", + "$ref": "#/definitions/SparkJobDefinitionFormat", "readOnly": false }, "parts": { @@ -218,6 +217,25 @@ "description": "The fully qualified path of libraries.", "type": "string", "readOnly": false + }, + "SparkJobDefinitionFormat": { + "type": "string", + "description": "The format of the request. Can be either `SparkJobDefinitionV1` or `SparkJobDefinitionV2`. Additional Format types may be added over time.", + "enum": ["SparkJobDefinitionV1", "SparkJobDefinitionV2"], + "x-ms-enum": { + "name": "SparkJobDefinitionFormat", + "modelAsString": true, + "values": [ + { + "value": "SparkJobDefinitionV1", + "description": "The default format for spark job definitions. Does not support Main/Libs file parts. Refer to [SparkJobDefinitionV1](/rest/api/fabric/articles/item-management/definitions/spark-job-definition-v1) article for more details." + }, + { + "value": "SparkJobDefinitionV2", + "description": "The new format for spark job definitions. Supports Main/Libs file parts. Refer to [SparkJobDefinitionV2](/rest/api/fabric/articles/item-management/definitions/spark-job-definition-v2) article for more details." + } + ] + } } } } diff --git a/sparkjobdefinition/examples/CreateSparkJobDefinitionWithInlineFiles.json b/sparkjobdefinition/examples/CreateSparkJobDefinitionWithInlineFiles.json new file mode 100644 index 0000000..3fabd17 --- /dev/null +++ b/sparkjobdefinition/examples/CreateSparkJobDefinitionWithInlineFiles.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "workspaceId": "cfafbeb1-8037-4d0c-896e-a46fb27ff229", + "createSparkJobDefinitionRequest": { + "displayName": "SparkJobDefinition 1", + "description": "A spark job definition description.", + "definition": { + "format": "SparkJobDefinitionV2", + "parts": [ + { + "path": "SparkJobDefinitionV1.json", + "payload": "ewogICAgICAiZXhlY3V0Y..mFjdElkIjpudWxsCiAgICB9", + "payloadType": "InlineBase64" + }, + { + "path": "Main/main.py", + "payload": "cHJpbnQoMSk=", + "payloadType": "InlineBase64" + }, + { + "path": "Libs/lib1.py", + "payload": "cHJpbnQoMSk=", + "payloadType": "InlineBase64" + }, + { + "path": "Libs/lib2.py", + "payload": "cHJpbnQoMSk=", + "payloadType": "InlineBase64" + }, + { + "path": ".platform", + "payload": "ZG90UGxhdGZvcm1CYXNlNjRTdHJpbmc=", + "payloadType": "InlineBase64" + } + ] + } + } + }, + "responses": { + "202": { + "headers": { + "Location": "https://api.fabric.microsoft.com/v1/operations/0acd697c-1550-43cd-b998-91bfbfbd47c6", + "x-ms-operation-id": "0acd697c-1550-43cd-b998-91bfbfbd47c6", + "Retry-After": 30 + } + } + } +} \ No newline at end of file diff --git a/sparkjobdefinition/examples/GetSparkJobDefinitionDefinitionV2.json b/sparkjobdefinition/examples/GetSparkJobDefinitionDefinitionV2.json new file mode 100644 index 0000000..9d0a4e5 --- /dev/null +++ b/sparkjobdefinition/examples/GetSparkJobDefinitionDefinitionV2.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "workspaceId": "6e335e92-a2a2-4b5a-970a-bd6a89fbb765", + "sparkJobDefinitionId": "cfafbeb1-8037-4d0c-896e-a46fb27ff229", + "format": "SparkJobDefinitionV2" + }, + "responses": { + "200": { + "body": { + "definition": { + "parts": [ + { + "path": "SparkJobDefinitionV1.json", + "payload": "ew0KICAiZXhlY3V0YW..OWRmNDhhY2ZmZTgifQ", + "payloadType": "InlineBase64" + }, + { + "path": ".platform", + "payload": "ZG90UGxhdGZvcm1CYXNlNjRTdHJpbmc=", + "payloadType": "InlineBase64" + } + ] + } + } + }, + "202": { + "headers": { + "Location": "https://api.fabric.microsoft.com/v1/operations/431e8d7b-4a95-4c02-8ccd-6faef5ba1bd7", + "x-ms-operation-id": "431e8d7b-4a95-4c02-8ccd-6faef5ba1bd7", + "Retry-After": 30 + } + } + } +} \ No newline at end of file diff --git a/sparkjobdefinition/examples/UpdateSparkJobDefinitionWithInlineFiles.json b/sparkjobdefinition/examples/UpdateSparkJobDefinitionWithInlineFiles.json new file mode 100644 index 0000000..565aa0a --- /dev/null +++ b/sparkjobdefinition/examples/UpdateSparkJobDefinitionWithInlineFiles.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "workspaceId": "cfafbeb1-8037-4d0c-896e-a46fb27ff229", + "sparkJobDefinitionId": "5b218778-e7a5-4d73-8187-f10824047715", + "updateMetadata" : true, + "updateSparkJobDefinitionDefinitionRequest": { + "definition": { + "format": "SparkJobDefinitionV2", + "parts": [ + { + "path": "SparkJobDefinitionV1.json", + "payload": "ewogICAgICAiZXhlY3V0Y..mFjdElkIjpudWxsCiAgICB9", + "payloadType": "InlineBase64" + }, + { + "path": "Main/main.py", + "payload": "cHJpbnQoMSk=", + "payloadType": "InlineBase64" + }, + { + "path": "Libs/lib1.py", + "payload": "cHJpbnQoMSk=", + "payloadType": "InlineBase64" + }, + { + "path": "Libs/lib2.py", + "payload": "cHJpbnQoMSk=", + "payloadType": "InlineBase64" + }, + { + "path": ".platform", + "payload": "ZG90UGxhdGZvcm1CYXNlNjRTdHJpbmc=", + "payloadType": "InlineBase64" + } + ] + } + } + }, + "responses": { + "202": { + "headers": { + "Location": "https://api.fabric.microsoft.com/v1/operations/427f6c34-b64e-4ee4-8ea5-b533c0e203ef", + "x-ms-operation-id": "427f6c34-b64e-4ee4-8ea5-b533c0e203ef", + "Retry-After": 30 + } + } + } +} \ No newline at end of file diff --git a/sparkjobdefinition/swagger.json b/sparkjobdefinition/swagger.json index 570f734..becbf8f 100644 --- a/sparkjobdefinition/swagger.json +++ b/sparkjobdefinition/swagger.json @@ -63,7 +63,7 @@ }, "post": { "summary": "Creates a spark job definition in the specified workspace.", - "description": "This API supports [long running operations (LRO)](/rest/api/fabric/articles/long-running-operation).\n\n To create spark job definition with a public definition, refer to [Spark job definition](/rest/api/fabric/articles/item-management/definitions/spark-job-definition) article. \n\n## Permissions\n\nThe caller must have a *contributor* workspace role.\n\n## Required Delegated Scopes\n\n SparkJobDefinition.ReadWrite.All or Item.ReadWrite.All \n\n## Limitations \n- To create a spark job definition the workspace must be on a supported Fabric capacity. For more information see: [Microsoft Fabric license types](/fabric/enterprise/licenses#microsoft-fabric-license-types).\n\n## Microsoft Entra supported identities\n\nThis API supports the Microsoft [identities](/rest/api/fabric/articles/identity-support) listed in this section.\n\n| Identity | Support |\n|-|-|\n| User | Yes |\n| [Service principal](/entra/identity-platform/app-objects-and-service-principals#service-principal-object) and [Managed identities](/entra/identity/managed-identities-azure-resources/overview) | Yes |\n\n## Interface", + "description": "This API supports [long running operations (LRO)](/rest/api/fabric/articles/long-running-operation).\n\n To create spark job definition with a public definition, refer to [SparkJobDefinitionV1](/rest/api/fabric/articles/item-management/definitions/spark-job-definition-v1) article for `SparkJobDefinitionV1` format and [SparkJobDefinitionV2](/rest/api/fabric/articles/item-management/definitions/spark-job-definition-v2) article for `SparkJobDefinitionV2` format. \n\n## Permissions\n\nThe caller must have a *contributor* workspace role.\n\n## Required Delegated Scopes\n\n SparkJobDefinition.ReadWrite.All or Item.ReadWrite.All \n\n## Limitations \n- To create a spark job definition the workspace must be on a supported Fabric capacity. For more information see: [Microsoft Fabric license types](/fabric/enterprise/licenses#microsoft-fabric-license-types).\n\n## Microsoft Entra supported identities\n\nThis API supports the Microsoft [identities](/rest/api/fabric/articles/identity-support) listed in this section.\n\n| Identity | Support |\n|-|-|\n| User | Yes |\n| [Service principal](/entra/identity-platform/app-objects-and-service-principals#service-principal-object) and [Managed identities](/entra/identity/managed-identities-azure-resources/overview) | Yes |\n\n## Interface", "tags": [ "Items" ], @@ -102,7 +102,7 @@ } }, "202": { - "description": "Request accepted, spark job definition provisioning in progress.", + "description": "Request accepted, spark job definition provisioning in progress. For details on how to retrieve the long-running operation result, see [Get Operation Result](/rest/api/fabric/core/long-running-operations/get-operation-result).", "headers": { "Location": { "description": "The URL of the operation status, which can be used to track the operation state.", @@ -132,6 +132,9 @@ }, "Create a spark job definition with public definition example": { "$ref": "./examples/CreateSparkJobDefinition.json" + }, + "Create a spark job definition with public definition and inline files example": { + "$ref": "./examples/CreateSparkJobDefinitionWithInlineFiles.json" } } } @@ -323,8 +326,23 @@ { "in": "query", "name": "format", - "description": "The format of the spark job definition public definition.", "type": "string", + "description": "The format of the request. Can be either `SparkJobDefinitionV1` or `SparkJobDefinitionV2`. Additional Format types may be added over time.", + "enum": ["SparkJobDefinitionV1", "SparkJobDefinitionV2"], + "x-ms-enum": { + "name": "SparkJobDefinitionFormat", + "modelAsString": true, + "values": [ + { + "value": "SparkJobDefinitionV1", + "description": "The default format for spark job definitions. Does not support Main/Libs file parts. Refer to [SparkJobDefinitionV1](/rest/api/fabric/articles/item-management/definitions/spark-job-definition-v1) article for more details." + }, + { + "value": "SparkJobDefinitionV2", + "description": "The new format for spark job definitions. Supports Main/Libs file parts. Refer to [SparkJobDefinitionV2](/rest/api/fabric/articles/item-management/definitions/spark-job-definition-v2) article for more details." + } + ] + }, "required": false } ], @@ -336,7 +354,7 @@ } }, "202": { - "description": "Request accepted. Retrieving the definition is in progress.", + "description": "Request accepted. Retrieving the definition is in progress. For details on how to retrieve the long-running operation result, see [Get Operation Result](/rest/api/fabric/core/long-running-operations/get-operation-result). For details on what the response contains, see [SparkJobDefinitionV2](/rest/api/fabric/articles/item-management/definitions/spark-job-definition-v2) article. Note that the `format` field will not be included in the response payload.", "headers": { "Location": { "description": "The URL of the operation status, which can be used to track the operation state.", @@ -363,6 +381,9 @@ "x-ms-examples": { "Get a spark job definition public definition example": { "$ref": "./examples/GetSparkJobDefinitionDefinition.json" + }, + "Get a spark job definition public definition example with SparkJobDefinitionV2 format": { + "$ref": "./examples/GetSparkJobDefinitionDefinitionV2.json" } } } @@ -370,7 +391,7 @@ "/workspaces/{workspaceId}/sparkJobDefinitions/{sparkJobDefinitionId}/updateDefinition": { "post": { "summary": "Overrides the definition for the specified spark job definition.", - "description": "This API supports [long running operations (LRO)](/rest/api/fabric/articles/long-running-operation).\n\n \nUpdating the spark job definition's definition, does not affect its sensitivity label. \n\n## Permissions\n\nThe caller must have *read and write* permissions for the spark job definition.\n\n## Required Delegated Scopes\n\n SparkJobDefinition.ReadWrite.All or Item.ReadWrite.All\n\n## Microsoft Entra supported identities\n\nThis API supports the Microsoft [identities](/rest/api/fabric/articles/identity-support) listed in this section.\n\n| Identity | Support |\n|-|-|\n| User | Yes |\n| [Service principal](/entra/identity-platform/app-objects-and-service-principals#service-principal-object) and [Managed identities](/entra/identity/managed-identities-azure-resources/overview) | Yes |\n\n## Interface", + "description": "This API supports [long running operations (LRO)](/rest/api/fabric/articles/long-running-operation).\n\n To update spark job definition with a public definition, refer to [SparkJobDefinitionV1](/rest/api/fabric/articles/item-management/definitions/spark-job-definition-v1) article for `SparkJobDefinitionV1` format and [SparkJobDefinitionV2](/rest/api/fabric/articles/item-management/definitions/spark-job-definition-v2) article for `SparkJobDefinitionV2` format. \n\n \nUpdating the spark job definition's definition does not affect its sensitivity label. \n\n## Permissions\n\nThe caller must have *read and write* permissions for the spark job definition.\n\n## Required Delegated Scopes\n\n SparkJobDefinition.ReadWrite.All or Item.ReadWrite.All\n\n## Microsoft Entra supported identities\n\nThis API supports the Microsoft [identities](/rest/api/fabric/articles/identity-support) listed in this section.\n\n| Identity | Support |\n|-|-|\n| User | Yes |\n| [Service principal](/entra/identity-platform/app-objects-and-service-principals#service-principal-object) and [Managed identities](/entra/identity/managed-identities-azure-resources/overview) | Yes |\n\n## Interface", "tags": [ "Items" ], @@ -418,7 +439,7 @@ "description": "Request completed successfully." }, "202": { - "description": "Request accepted. Update definition is in progress.", + "description": "Request accepted. Update definition is in progress. For details on how to retrieve the long-running operation result, see [Get Operation Result](/rest/api/fabric/core/long-running-operations/get-operation-result).", "headers": { "Location": { "description": "The URL of the operation status, which can be used to track the operation state.", @@ -443,8 +464,11 @@ } }, "x-ms-examples": { - "Update a spark job definition public definition example": { + "Update a spark job definition with public definition example": { "$ref": "./examples/UpdateSparkJobDefinitionDefinition.json" + }, + "Update a spark job definition with public definition and inline files example": { + "$ref": "./examples/UpdateSparkJobDefinitionWithInlineFiles.json" } } }