# Git

Use Git as a data source location for data sets that are relevant to the workload being submitted.

## List Git assets.

> Retrieve a list of Git datasource assets.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.24"},"tags":[{"name":"Git","description":"Use Git as a data source location for data sets that are relevant to the workload being submitted."}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"AssetNameFilter":{"name":"name","in":"query","required":false,"description":"Filter results by name.","schema":{"type":"string"}},"AssetScopeFilter":{"name":"scope","in":"query","required":false,"description":"Filters results by scope. Returns only assets that belong to the specified scope. Mutually exclusive with includeDescendants. Valid values: tenant, cluster, department, project.","schema":{"type":"string"}},"AssetProjectFilter":{"name":"projectId","in":"query","required":false,"description":"Filter results by project id. If scope filter is project, only assets from the specific project will be included in the response. Otherwise, the response will include project, department, cluster, tenant and system assets.","schema":{"type":"integer","format":"int32"}},"AssetDepartmentFilter":{"name":"departmentId","in":"query","description":"Filter results by department id. If scope filter is department, only assets from the specific department will be included in the response. Otherwise, the response will include department, cluster, tenant and system assets.","required":false,"schema":{"type":"string"}},"AssetClusterFilter":{"name":"clusterId","in":"query","description":"Filter results by Universally Unique Identifier (UUID) of the cluster. If scope filter is cluster, only assets from the specific cluster will be included in the response. Otherwise, the response will include cluster, tenant and system assets.","required":false,"schema":{"type":"string","format":"uuid"}},"IncludeUsageInfo":{"name":"usageInfo","in":"query","required":false,"description":"Whether the query should include asset usage information as part of the response.","schema":{"type":"boolean"}},"ComplyToProject":{"name":"complyToProject","in":"query","required":false,"description":"Include workload creation compliance information of an asset, for a given project, as part of the response. To check compliance, you need to provide both project id and workload type.","schema":{"type":"integer","format":"int32"}},"ComplyToWorkloadType":{"name":"complyToWorkloadType","in":"query","required":false,"description":"Include workload creation compliance information of an asset, for a given workload type, as part of the response. To check compliance, you need to provide both project id and workload type.","schema":{"type":"string","enum":["Workspace","Training","Distributed","Inference"]}},"IncludeStatus":{"name":"statusInfo","in":"query","required":false,"description":"Whether the query should include asset status information as part of the response.","schema":{"type":"boolean"}},"AssetIdsFilter":{"name":"assetIds","in":"query","required":false,"description":"Filter results by the ids of the assets. Provided value should be a comma separated string of UUIDs.","schema":{"type":"string","pattern":"^\\b(?:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})(?:,(?:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}))*\\b$"}},"ComplyToReplicaType":{"name":"complyToReplicaType","in":"query","required":false,"description":"Include workload creation compliance information of an asset, for a given replica type, as part of the response. To check compliance, you need to provide both project id and workload type. For distributed, replica type should be provided as well.","schema":{"type":"string","enum":["Worker","Master"]}}},"schemas":{"GitListResponse":{"required":["entries"],"properties":{"entries":{"type":"array","items":{"$ref":"#/components/schemas/GitAsset"}}}},"GitAsset":{"required":["meta","spec"],"properties":{"meta":{"$ref":"#/components/schemas/AssetMeta"},"spec":{"$ref":"#/components/schemas/GitAssetSpec"},"usedBy":{"$ref":"#/components/schemas/AssetUsageInfo"},"usageTimes":{"$ref":"#/components/schemas/UsageTimesInfo"},"compliance":{"$ref":"#/components/schemas/ComplianceInfo"},"status":{"$ref":"#/components/schemas/AssetClusterStatusInfo"}}},"AssetMeta":{"allOf":[{"$ref":"#/components/schemas/AssetUpdatableFields"},{"$ref":"#/components/schemas/AssetCreationFields"},{"$ref":"#/components/schemas/AssetReadOnlyFields"}]},"AssetUpdatableFields":{"required":["name"],"properties":{"name":{"$ref":"#/components/schemas/AssetName"},"description":{"$ref":"#/components/schemas/AssetDescription"}}},"AssetName":{"description":"The name of the asset.","type":"string","minLength":1},"AssetDescription":{"description":"The description of the asset.","type":"string","minLength":1,"maxLength":250,"nullable":true},"AssetCreationFields":{"type":"object","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/Scope"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"departmentId":{"description":"The id of the department. Must be specified for department scoped assets.","type":"string","nullable":true,"minLength":1},"projectId":{"description":"The id of the project. Must be specified for project scoped assets.","type":"integer","format":"int32","nullable":true},"autoDelete":{"description":"The asset will be deleted automatically. This is intended for internal use.","type":"boolean","nullable":true,"default":false},"workloadSupportedTypes":{"$ref":"#/components/schemas/WorkloadSupportedTypes"},"private":{"description":"The asset will be private to the user who created it. supported only for docker registry and generic secrets","type":"boolean","nullable":true,"default":false}}},"Scope":{"description":"The scope in which an asset can be used. The highest scope, system, is intended for internal purposes only.","type":"string","minLength":1,"enum":["system","tenant","cluster","department","project"]},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"WorkloadSupportedTypes":{"properties":{"inference":{"description":"Is inference a supported workload type.","type":"boolean","nullable":true},"workspace":{"description":"Is workspace a supported workload type.","type":"boolean","nullable":true},"training":{"description":"Is training a supported workload type.","type":"boolean","nullable":true},"distributed":{"description":"Is distributed a supported workload type.","type":"boolean","nullable":true},"distFramework":{"description":"The distributed training framework used in the workload.","type":"string","enum":["MPI","PyTorch","TF","XGBoost"],"nullable":true}},"nullable":true,"type":"object"},"AssetReadOnlyFields":{"required":["id","kind","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/AssetId"},"kind":{"$ref":"#/components/schemas/AssetKind"},"tenantId":{"description":"The id of the tenant.","type":"integer","format":"int32","nullable":true},"createdBy":{"description":"The user who created the asset.","type":"string","minLength":1},"createdAt":{"description":"The time at which the asset were created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the asset.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the asset has been updated","type":"string","minLength":1,"format":"date-time"},"deletedAt":{"description":"Deletion time of the asset (relevant for assets that sync to the cluster)","type":"string","minLength":1,"format":"date-time"},"deletedBy":{"description":"The user who deleted the asset","type":"string","minLength":1},"projectName":{"description":"The name of the project that the asset is associated with, for project scoped assets.","type":"string","minLength":1,"nullable":true},"updateCount":{"$ref":"#/components/schemas/UpdateCount"}},"type":"object"},"AssetId":{"description":"Unique identifier of the asset.","type":"string","format":"uuid","minLength":1},"AssetKind":{"description":"The kind of the asset.","type":"string","minLength":1,"enum":["compute","environment","accessKey","dockerRegistry","password","genericSecret","registry","s3","git","nfs","pvc","hostPath","workload-template","model","config-map","secret-volume","data-volume","ngcApiKey"]},"UpdateCount":{"description":"the value of an update counter of a data in the system.","type":"integer","format":"int64"},"GitAssetSpec":{"allOf":[{"$ref":"#/components/schemas/GitCommon"},{"$ref":"#/components/schemas/GitPasswordAsset"},{"$ref":"#/components/schemas/GitCredentialId"}]},"GitCommon":{"properties":{"repository":{"description":"URL to a remote Git repository. The content of this repository will be mapped to the container running the workload. (mandatory)","type":"string","minLength":1,"maxLength":2048,"nullable":true},"branch":{"description":"Specific branch to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"revision":{"description":"Specific revision to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"path":{"description":"Local path within the workload to which the Git repository will be mapped (mandatory).","type":"string","minLength":1,"maxLength":4096,"nullable":true}},"nullable":true,"type":"object"},"GitPasswordAsset":{"properties":{"passwordAssetId":{"description":"UUID of a credential asset of type userid / password. This credential is required for authenticating with private Git repositories using SSH. (deprecated - use credentialId instead).","type":"string","format":"uuid","nullable":true,"minLength":1}}},"GitCredentialId":{"properties":{"credentialId":{"description":"UUID of a credential asset of type generic secret or user id / password required for authenticating with private Git repositories. For generic secret, the credential asset must contain a key-value pair where the key is ssh (lowercase) and the value is a valid private SSH key","type":"string","format":"uuid","nullable":true,"minLength":1}}},"AssetUsageInfo":{"description":"Details about resources that use the asset.","properties":{"workspaces":{"description":"workspaces that rely on this asset.","type":"array","items":{"$ref":"#/components/schemas/WorkloadRefAndStatus"}},"trainings":{"description":"trainings that rely on this asset.","type":"array","items":{"$ref":"#/components/schemas/WorkloadRefAndStatus"}},"distributed":{"description":"distributed trainings that rely on this asset.","type":"array","items":{"$ref":"#/components/schemas/WorkloadRefAndStatus"}},"inferences":{"description":"inferences that rely on this asset.","type":"array","items":{"$ref":"#/components/schemas/WorkloadRefAndStatus"}},"templates":{"description":"templates that rely on this asset.","type":"array","items":{"$ref":"#/components/schemas/AssetRef"}},"assets":{"description":"list of other assets that use this asset. specifically, accessKeys used by s3, and passwords used by git.","$ref":"#/components/schemas/AssetsUsageRef"}},"nullable":true,"type":"object"},"WorkloadRefAndStatus":{"description":"Id, name and status of a workspace or training","required":["id","name"],"properties":{"id":{"$ref":"#/components/schemas/WorkloadId1"},"name":{"$ref":"#/components/schemas/WorkloadName"},"status":{"description":"The status of the workspace or training.","type":"string","minLength":1}}},"WorkloadId1":{"description":"A unique ID of the workload.","type":"string","format":"uuid"},"WorkloadName":{"description":"The name of the workload.","type":"string","minLength":1,"pattern":".*"},"AssetRef":{"description":"Reference information about an asset.","required":["id","name"],"properties":{"id":{"$ref":"#/components/schemas/AssetId"},"name":{"$ref":"#/components/schemas/AssetName"}}},"AssetsUsageRef":{"description":"Reference information about usage of assets by other assets, for example datasources that uses credentials.","properties":{"environment":{"nullable":true,"type":"object","description":"environment asset.","allOf":[{"$ref":"#/components/schemas/EnvironmentAssetRef"}],"deprecated":true},"environments":{"type":"array","items":{"$ref":"#/components/schemas/AssetRef"}},"compute":{"$ref":"#/components/schemas/AssetsUsageRefCompute","deprecated":true},"computes":{"type":"array","items":{"$ref":"#/components/schemas/AssetRef"}},"datasources":{"type":"array","items":{"$ref":"#/components/schemas/AssetDatasourceRef"}}}},"EnvironmentAssetRef":{"description":"Reference information about environment asset.","required":["id","name"],"properties":{"id":{"$ref":"#/components/schemas/AssetId"},"name":{"$ref":"#/components/schemas/AssetName"},"toolTypes":{"description":"the type of tools as defined in the connections of the environment asset.","type":"array","nullable":true,"items":{"$ref":"#/components/schemas/ToolType"}}}},"ToolType":{"description":"Super set of Internal and External tool types.","type":"string","minLength":1,"enum":["jupyter-notebook","pycharm","visual-studio-code","tensorboard","rstudio","mlflow","custom","wandb","matlab","comet","chatbot-ui"]},"AssetsUsageRefCompute":{"allOf":[{"$ref":"#/components/schemas/AssetRef"}],"nullable":true,"type":"object"},"AssetDatasourceRef":{"description":"Reference information about a datasource asset.","required":["id","name","kind"],"properties":{"id":{"$ref":"#/components/schemas/AssetId"},"name":{"$ref":"#/components/schemas/AssetName"},"kind":{"$ref":"#/components/schemas/AssetKind"},"overrides":{"$ref":"#/components/schemas/DataSourceOverrides","deprecated":true}}},"DataSourceOverrides":{"description":"specific fields to override in the data source.","type":"object","nullable":true,"properties":{"containerPath":{"type":"string","minLength":1,"nullable":true}}},"UsageTimesInfo":{"description":"Details about times the asset has been used by workloads, etc.","properties":{"lastUsedByWorkload":{"description":"The time at which the asset were last used by a workload of given type and project. This field requires complyToProject and complyToWorkload types flags of the API, to specify the workload type and project id.","type":"string","minLength":1,"format":"date-time","nullable":true}},"nullable":true,"type":"object"},"ComplianceInfo":{"description":"Compliance of an asset with creation of workloads in a given project.","properties":{"imposed":{"description":"Whether the asset is imposed on created workloads by the administrator.","type":"boolean"},"compliance":{"description":"Whether the asset info complies with creation of workloads in the project.","type":"boolean"},"reason":{"description":"For asset that does not comply, specify one or more reason why.","type":"array","items":{"$ref":"#/components/schemas/ComplianceInfoReason"}}},"nullable":true,"type":"object"},"ComplianceInfoReason":{"description":"An issue preventing the use of a template or asset for creating workloads in a given project.","required":["details"],"properties":{"field":{"description":"For policy related issues, includes a json path to the field in the policy for which the issue applies.","nullable":true,"type":"string","pattern":".*"},"details":{"description":"Explanation of the issue.","type":"string","pattern":".*"},"rule":{"$ref":"#/components/schemas/PolicyRuleEnum"}}},"PolicyRuleEnum":{"description":"Indicates which validation rule (e.g., min, max, step, options, required, canEdit, canAdd) conflicted with policy restrictions, causing the asset or template to be rejected.","type":"string","nullable":true,"enum":["min","max","step","options","required","canEdit","canAdd","locked","blocked"]},"AssetClusterStatusInfo":{"properties":{"status":{"$ref":"#/components/schemas/AssetSyncStatusEnum"},"issues":{"$ref":"#/components/schemas/AssetClusterStatusIssues"},"message":{"type":"string"},"url":{"type":"string"}},"nullable":true,"type":"object"},"AssetSyncStatusEnum":{"type":"string","enum":["Creating","Deleting","Failed","Deletion failed","Issues found","No issues found","No status","Updating"]},"AssetClusterStatusIssues":{"type":"array","items":{"$ref":"#/components/schemas/AssetClusterStatusIssue"}},"AssetClusterStatusIssue":{"type":"object","required":["scopeId","scopeType","issue"],"properties":{"scopeId":{"$ref":"#/components/schemas/ScopeId"},"scopeType":{"$ref":"#/components/schemas/ScopeType"},"issue":{"$ref":"#/components/schemas/AssetClusterStatusIssueEnum"}}},"ScopeId":{"type":"string","description":"The id of the cluster, department or project, depending on the scope type."},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"AssetClusterStatusIssueEnum":{"type":"string","enum":["ReplicationError","LostPhase","NotCreated"]},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/asset/datasource/git":{"get":{"summary":"List Git assets.","description":"Retrieve a list of Git datasource assets.","operationId":"list_git_assets","tags":["Git"],"parameters":[{"$ref":"#/components/parameters/AssetNameFilter"},{"$ref":"#/components/parameters/AssetScopeFilter"},{"$ref":"#/components/parameters/AssetProjectFilter"},{"$ref":"#/components/parameters/AssetDepartmentFilter"},{"$ref":"#/components/parameters/AssetClusterFilter"},{"$ref":"#/components/parameters/IncludeUsageInfo"},{"$ref":"#/components/parameters/ComplyToProject"},{"$ref":"#/components/parameters/ComplyToWorkloadType"},{"$ref":"#/components/parameters/IncludeStatus"},{"$ref":"#/components/parameters/AssetIdsFilter"},{"$ref":"#/components/parameters/ComplyToReplicaType"}],"responses":{"200":{"description":"Request completed successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitListResponse"}}}},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Create a Git asset.

> Use to create a a Git datasource asset.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.24"},"tags":[{"name":"Git","description":"Use Git as a data source location for data sets that are relevant to the workload being submitted."}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"schemas":{"GitCreationRequest":{"required":["meta","spec"],"properties":{"meta":{"$ref":"#/components/schemas/AssetCreationRequest"},"spec":{"$ref":"#/components/schemas/GitAssetSpec"}}},"AssetCreationRequest":{"allOf":[{"$ref":"#/components/schemas/AssetUpdatableFields"},{"$ref":"#/components/schemas/AssetCreationFields"}]},"AssetUpdatableFields":{"required":["name"],"properties":{"name":{"$ref":"#/components/schemas/AssetName"},"description":{"$ref":"#/components/schemas/AssetDescription"}}},"AssetName":{"description":"The name of the asset.","type":"string","minLength":1},"AssetDescription":{"description":"The description of the asset.","type":"string","minLength":1,"maxLength":250,"nullable":true},"AssetCreationFields":{"type":"object","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/Scope"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"departmentId":{"description":"The id of the department. Must be specified for department scoped assets.","type":"string","nullable":true,"minLength":1},"projectId":{"description":"The id of the project. Must be specified for project scoped assets.","type":"integer","format":"int32","nullable":true},"autoDelete":{"description":"The asset will be deleted automatically. This is intended for internal use.","type":"boolean","nullable":true,"default":false},"workloadSupportedTypes":{"$ref":"#/components/schemas/WorkloadSupportedTypes"},"private":{"description":"The asset will be private to the user who created it. supported only for docker registry and generic secrets","type":"boolean","nullable":true,"default":false}}},"Scope":{"description":"The scope in which an asset can be used. The highest scope, system, is intended for internal purposes only.","type":"string","minLength":1,"enum":["system","tenant","cluster","department","project"]},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"WorkloadSupportedTypes":{"properties":{"inference":{"description":"Is inference a supported workload type.","type":"boolean","nullable":true},"workspace":{"description":"Is workspace a supported workload type.","type":"boolean","nullable":true},"training":{"description":"Is training a supported workload type.","type":"boolean","nullable":true},"distributed":{"description":"Is distributed a supported workload type.","type":"boolean","nullable":true},"distFramework":{"description":"The distributed training framework used in the workload.","type":"string","enum":["MPI","PyTorch","TF","XGBoost"],"nullable":true}},"nullable":true,"type":"object"},"GitAssetSpec":{"allOf":[{"$ref":"#/components/schemas/GitCommon"},{"$ref":"#/components/schemas/GitPasswordAsset"},{"$ref":"#/components/schemas/GitCredentialId"}]},"GitCommon":{"properties":{"repository":{"description":"URL to a remote Git repository. The content of this repository will be mapped to the container running the workload. (mandatory)","type":"string","minLength":1,"maxLength":2048,"nullable":true},"branch":{"description":"Specific branch to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"revision":{"description":"Specific revision to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"path":{"description":"Local path within the workload to which the Git repository will be mapped (mandatory).","type":"string","minLength":1,"maxLength":4096,"nullable":true}},"nullable":true,"type":"object"},"GitPasswordAsset":{"properties":{"passwordAssetId":{"description":"UUID of a credential asset of type userid / password. This credential is required for authenticating with private Git repositories using SSH. (deprecated - use credentialId instead).","type":"string","format":"uuid","nullable":true,"minLength":1}}},"GitCredentialId":{"properties":{"credentialId":{"description":"UUID of a credential asset of type generic secret or user id / password required for authenticating with private Git repositories. For generic secret, the credential asset must contain a key-value pair where the key is ssh (lowercase) and the value is a valid private SSH key","type":"string","format":"uuid","nullable":true,"minLength":1}}},"GitAsset":{"required":["meta","spec"],"properties":{"meta":{"$ref":"#/components/schemas/AssetMeta"},"spec":{"$ref":"#/components/schemas/GitAssetSpec"},"usedBy":{"$ref":"#/components/schemas/AssetUsageInfo"},"usageTimes":{"$ref":"#/components/schemas/UsageTimesInfo"},"compliance":{"$ref":"#/components/schemas/ComplianceInfo"},"status":{"$ref":"#/components/schemas/AssetClusterStatusInfo"}}},"AssetMeta":{"allOf":[{"$ref":"#/components/schemas/AssetUpdatableFields"},{"$ref":"#/components/schemas/AssetCreationFields"},{"$ref":"#/components/schemas/AssetReadOnlyFields"}]},"AssetReadOnlyFields":{"required":["id","kind","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/AssetId"},"kind":{"$ref":"#/components/schemas/AssetKind"},"tenantId":{"description":"The id of the tenant.","type":"integer","format":"int32","nullable":true},"createdBy":{"description":"The user who created the asset.","type":"string","minLength":1},"createdAt":{"description":"The time at which the asset were created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the asset.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the asset has been updated","type":"string","minLength":1,"format":"date-time"},"deletedAt":{"description":"Deletion time of the asset (relevant for assets that sync to the cluster)","type":"string","minLength":1,"format":"date-time"},"deletedBy":{"description":"The user who deleted the asset","type":"string","minLength":1},"projectName":{"description":"The name of the project that the asset is associated with, for project scoped assets.","type":"string","minLength":1,"nullable":true},"updateCount":{"$ref":"#/components/schemas/UpdateCount"}},"type":"object"},"AssetId":{"description":"Unique identifier of the asset.","type":"string","format":"uuid","minLength":1},"AssetKind":{"description":"The kind of the asset.","type":"string","minLength":1,"enum":["compute","environment","accessKey","dockerRegistry","password","genericSecret","registry","s3","git","nfs","pvc","hostPath","workload-template","model","config-map","secret-volume","data-volume","ngcApiKey"]},"UpdateCount":{"description":"the value of an update counter of a data in the system.","type":"integer","format":"int64"},"AssetUsageInfo":{"description":"Details about resources that use the asset.","properties":{"workspaces":{"description":"workspaces that rely on this asset.","type":"array","items":{"$ref":"#/components/schemas/WorkloadRefAndStatus"}},"trainings":{"description":"trainings that rely on this asset.","type":"array","items":{"$ref":"#/components/schemas/WorkloadRefAndStatus"}},"distributed":{"description":"distributed trainings that rely on this asset.","type":"array","items":{"$ref":"#/components/schemas/WorkloadRefAndStatus"}},"inferences":{"description":"inferences that rely on this asset.","type":"array","items":{"$ref":"#/components/schemas/WorkloadRefAndStatus"}},"templates":{"description":"templates that rely on this asset.","type":"array","items":{"$ref":"#/components/schemas/AssetRef"}},"assets":{"description":"list of other assets that use this asset. specifically, accessKeys used by s3, and passwords used by git.","$ref":"#/components/schemas/AssetsUsageRef"}},"nullable":true,"type":"object"},"WorkloadRefAndStatus":{"description":"Id, name and status of a workspace or training","required":["id","name"],"properties":{"id":{"$ref":"#/components/schemas/WorkloadId1"},"name":{"$ref":"#/components/schemas/WorkloadName"},"status":{"description":"The status of the workspace or training.","type":"string","minLength":1}}},"WorkloadId1":{"description":"A unique ID of the workload.","type":"string","format":"uuid"},"WorkloadName":{"description":"The name of the workload.","type":"string","minLength":1,"pattern":".*"},"AssetRef":{"description":"Reference information about an asset.","required":["id","name"],"properties":{"id":{"$ref":"#/components/schemas/AssetId"},"name":{"$ref":"#/components/schemas/AssetName"}}},"AssetsUsageRef":{"description":"Reference information about usage of assets by other assets, for example datasources that uses credentials.","properties":{"environment":{"nullable":true,"type":"object","description":"environment asset.","allOf":[{"$ref":"#/components/schemas/EnvironmentAssetRef"}],"deprecated":true},"environments":{"type":"array","items":{"$ref":"#/components/schemas/AssetRef"}},"compute":{"$ref":"#/components/schemas/AssetsUsageRefCompute","deprecated":true},"computes":{"type":"array","items":{"$ref":"#/components/schemas/AssetRef"}},"datasources":{"type":"array","items":{"$ref":"#/components/schemas/AssetDatasourceRef"}}}},"EnvironmentAssetRef":{"description":"Reference information about environment asset.","required":["id","name"],"properties":{"id":{"$ref":"#/components/schemas/AssetId"},"name":{"$ref":"#/components/schemas/AssetName"},"toolTypes":{"description":"the type of tools as defined in the connections of the environment asset.","type":"array","nullable":true,"items":{"$ref":"#/components/schemas/ToolType"}}}},"ToolType":{"description":"Super set of Internal and External tool types.","type":"string","minLength":1,"enum":["jupyter-notebook","pycharm","visual-studio-code","tensorboard","rstudio","mlflow","custom","wandb","matlab","comet","chatbot-ui"]},"AssetsUsageRefCompute":{"allOf":[{"$ref":"#/components/schemas/AssetRef"}],"nullable":true,"type":"object"},"AssetDatasourceRef":{"description":"Reference information about a datasource asset.","required":["id","name","kind"],"properties":{"id":{"$ref":"#/components/schemas/AssetId"},"name":{"$ref":"#/components/schemas/AssetName"},"kind":{"$ref":"#/components/schemas/AssetKind"},"overrides":{"$ref":"#/components/schemas/DataSourceOverrides","deprecated":true}}},"DataSourceOverrides":{"description":"specific fields to override in the data source.","type":"object","nullable":true,"properties":{"containerPath":{"type":"string","minLength":1,"nullable":true}}},"UsageTimesInfo":{"description":"Details about times the asset has been used by workloads, etc.","properties":{"lastUsedByWorkload":{"description":"The time at which the asset were last used by a workload of given type and project. This field requires complyToProject and complyToWorkload types flags of the API, to specify the workload type and project id.","type":"string","minLength":1,"format":"date-time","nullable":true}},"nullable":true,"type":"object"},"ComplianceInfo":{"description":"Compliance of an asset with creation of workloads in a given project.","properties":{"imposed":{"description":"Whether the asset is imposed on created workloads by the administrator.","type":"boolean"},"compliance":{"description":"Whether the asset info complies with creation of workloads in the project.","type":"boolean"},"reason":{"description":"For asset that does not comply, specify one or more reason why.","type":"array","items":{"$ref":"#/components/schemas/ComplianceInfoReason"}}},"nullable":true,"type":"object"},"ComplianceInfoReason":{"description":"An issue preventing the use of a template or asset for creating workloads in a given project.","required":["details"],"properties":{"field":{"description":"For policy related issues, includes a json path to the field in the policy for which the issue applies.","nullable":true,"type":"string","pattern":".*"},"details":{"description":"Explanation of the issue.","type":"string","pattern":".*"},"rule":{"$ref":"#/components/schemas/PolicyRuleEnum"}}},"PolicyRuleEnum":{"description":"Indicates which validation rule (e.g., min, max, step, options, required, canEdit, canAdd) conflicted with policy restrictions, causing the asset or template to be rejected.","type":"string","nullable":true,"enum":["min","max","step","options","required","canEdit","canAdd","locked","blocked"]},"AssetClusterStatusInfo":{"properties":{"status":{"$ref":"#/components/schemas/AssetSyncStatusEnum"},"issues":{"$ref":"#/components/schemas/AssetClusterStatusIssues"},"message":{"type":"string"},"url":{"type":"string"}},"nullable":true,"type":"object"},"AssetSyncStatusEnum":{"type":"string","enum":["Creating","Deleting","Failed","Deletion failed","Issues found","No issues found","No status","Updating"]},"AssetClusterStatusIssues":{"type":"array","items":{"$ref":"#/components/schemas/AssetClusterStatusIssue"}},"AssetClusterStatusIssue":{"type":"object","required":["scopeId","scopeType","issue"],"properties":{"scopeId":{"$ref":"#/components/schemas/ScopeId"},"scopeType":{"$ref":"#/components/schemas/ScopeType"},"issue":{"$ref":"#/components/schemas/AssetClusterStatusIssueEnum"}}},"ScopeId":{"type":"string","description":"The id of the cluster, department or project, depending on the scope type."},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"AssetClusterStatusIssueEnum":{"type":"string","enum":["ReplicationError","LostPhase","NotCreated"]},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"400BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409Conflict":{"description":"The specified resource already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/asset/datasource/git":{"post":{"summary":"Create a Git asset.","description":"Use to create a a Git datasource asset.","operationId":"create_git_asset","tags":["Git"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitCreationRequest"}}}},"responses":{"202":{"description":"Request accepted successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitAsset"}}}},"400":{"$ref":"#/components/responses/400BadRequest"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"409":{"$ref":"#/components/responses/409Conflict"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Get a Git asset.

> Use to retrieve the details of a Git datasource asset by id.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.24"},"tags":[{"name":"Git","description":"Use Git as a data source location for data sets that are relevant to the workload being submitted."}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"parameters":{"IncludeUsageInfo":{"name":"usageInfo","in":"query","required":false,"description":"Whether the query should include asset usage information as part of the response.","schema":{"type":"boolean"}},"ComplyToProject":{"name":"complyToProject","in":"query","required":false,"description":"Include workload creation compliance information of an asset, for a given project, as part of the response. To check compliance, you need to provide both project id and workload type.","schema":{"type":"integer","format":"int32"}},"ComplyToWorkloadType":{"name":"complyToWorkloadType","in":"query","required":false,"description":"Include workload creation compliance information of an asset, for a given workload type, as part of the response. To check compliance, you need to provide both project id and workload type.","schema":{"type":"string","enum":["Workspace","Training","Distributed","Inference"]}},"IncludeStatus":{"name":"statusInfo","in":"query","required":false,"description":"Whether the query should include asset status information as part of the response.","schema":{"type":"boolean"}},"ComplyToReplicaType":{"name":"complyToReplicaType","in":"query","required":false,"description":"Include workload creation compliance information of an asset, for a given replica type, as part of the response. To check compliance, you need to provide both project id and workload type. For distributed, replica type should be provided as well.","schema":{"type":"string","enum":["Worker","Master"]}}},"schemas":{"GitAsset":{"required":["meta","spec"],"properties":{"meta":{"$ref":"#/components/schemas/AssetMeta"},"spec":{"$ref":"#/components/schemas/GitAssetSpec"},"usedBy":{"$ref":"#/components/schemas/AssetUsageInfo"},"usageTimes":{"$ref":"#/components/schemas/UsageTimesInfo"},"compliance":{"$ref":"#/components/schemas/ComplianceInfo"},"status":{"$ref":"#/components/schemas/AssetClusterStatusInfo"}}},"AssetMeta":{"allOf":[{"$ref":"#/components/schemas/AssetUpdatableFields"},{"$ref":"#/components/schemas/AssetCreationFields"},{"$ref":"#/components/schemas/AssetReadOnlyFields"}]},"AssetUpdatableFields":{"required":["name"],"properties":{"name":{"$ref":"#/components/schemas/AssetName"},"description":{"$ref":"#/components/schemas/AssetDescription"}}},"AssetName":{"description":"The name of the asset.","type":"string","minLength":1},"AssetDescription":{"description":"The description of the asset.","type":"string","minLength":1,"maxLength":250,"nullable":true},"AssetCreationFields":{"type":"object","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/Scope"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"departmentId":{"description":"The id of the department. Must be specified for department scoped assets.","type":"string","nullable":true,"minLength":1},"projectId":{"description":"The id of the project. Must be specified for project scoped assets.","type":"integer","format":"int32","nullable":true},"autoDelete":{"description":"The asset will be deleted automatically. This is intended for internal use.","type":"boolean","nullable":true,"default":false},"workloadSupportedTypes":{"$ref":"#/components/schemas/WorkloadSupportedTypes"},"private":{"description":"The asset will be private to the user who created it. supported only for docker registry and generic secrets","type":"boolean","nullable":true,"default":false}}},"Scope":{"description":"The scope in which an asset can be used. The highest scope, system, is intended for internal purposes only.","type":"string","minLength":1,"enum":["system","tenant","cluster","department","project"]},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"WorkloadSupportedTypes":{"properties":{"inference":{"description":"Is inference a supported workload type.","type":"boolean","nullable":true},"workspace":{"description":"Is workspace a supported workload type.","type":"boolean","nullable":true},"training":{"description":"Is training a supported workload type.","type":"boolean","nullable":true},"distributed":{"description":"Is distributed a supported workload type.","type":"boolean","nullable":true},"distFramework":{"description":"The distributed training framework used in the workload.","type":"string","enum":["MPI","PyTorch","TF","XGBoost"],"nullable":true}},"nullable":true,"type":"object"},"AssetReadOnlyFields":{"required":["id","kind","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/AssetId"},"kind":{"$ref":"#/components/schemas/AssetKind"},"tenantId":{"description":"The id of the tenant.","type":"integer","format":"int32","nullable":true},"createdBy":{"description":"The user who created the asset.","type":"string","minLength":1},"createdAt":{"description":"The time at which the asset were created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the asset.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the asset has been updated","type":"string","minLength":1,"format":"date-time"},"deletedAt":{"description":"Deletion time of the asset (relevant for assets that sync to the cluster)","type":"string","minLength":1,"format":"date-time"},"deletedBy":{"description":"The user who deleted the asset","type":"string","minLength":1},"projectName":{"description":"The name of the project that the asset is associated with, for project scoped assets.","type":"string","minLength":1,"nullable":true},"updateCount":{"$ref":"#/components/schemas/UpdateCount"}},"type":"object"},"AssetId":{"description":"Unique identifier of the asset.","type":"string","format":"uuid","minLength":1},"AssetKind":{"description":"The kind of the asset.","type":"string","minLength":1,"enum":["compute","environment","accessKey","dockerRegistry","password","genericSecret","registry","s3","git","nfs","pvc","hostPath","workload-template","model","config-map","secret-volume","data-volume","ngcApiKey"]},"UpdateCount":{"description":"the value of an update counter of a data in the system.","type":"integer","format":"int64"},"GitAssetSpec":{"allOf":[{"$ref":"#/components/schemas/GitCommon"},{"$ref":"#/components/schemas/GitPasswordAsset"},{"$ref":"#/components/schemas/GitCredentialId"}]},"GitCommon":{"properties":{"repository":{"description":"URL to a remote Git repository. The content of this repository will be mapped to the container running the workload. (mandatory)","type":"string","minLength":1,"maxLength":2048,"nullable":true},"branch":{"description":"Specific branch to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"revision":{"description":"Specific revision to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"path":{"description":"Local path within the workload to which the Git repository will be mapped (mandatory).","type":"string","minLength":1,"maxLength":4096,"nullable":true}},"nullable":true,"type":"object"},"GitPasswordAsset":{"properties":{"passwordAssetId":{"description":"UUID of a credential asset of type userid / password. This credential is required for authenticating with private Git repositories using SSH. (deprecated - use credentialId instead).","type":"string","format":"uuid","nullable":true,"minLength":1}}},"GitCredentialId":{"properties":{"credentialId":{"description":"UUID of a credential asset of type generic secret or user id / password required for authenticating with private Git repositories. For generic secret, the credential asset must contain a key-value pair where the key is ssh (lowercase) and the value is a valid private SSH key","type":"string","format":"uuid","nullable":true,"minLength":1}}},"AssetUsageInfo":{"description":"Details about resources that use the asset.","properties":{"workspaces":{"description":"workspaces that rely on this asset.","type":"array","items":{"$ref":"#/components/schemas/WorkloadRefAndStatus"}},"trainings":{"description":"trainings that rely on this asset.","type":"array","items":{"$ref":"#/components/schemas/WorkloadRefAndStatus"}},"distributed":{"description":"distributed trainings that rely on this asset.","type":"array","items":{"$ref":"#/components/schemas/WorkloadRefAndStatus"}},"inferences":{"description":"inferences that rely on this asset.","type":"array","items":{"$ref":"#/components/schemas/WorkloadRefAndStatus"}},"templates":{"description":"templates that rely on this asset.","type":"array","items":{"$ref":"#/components/schemas/AssetRef"}},"assets":{"description":"list of other assets that use this asset. specifically, accessKeys used by s3, and passwords used by git.","$ref":"#/components/schemas/AssetsUsageRef"}},"nullable":true,"type":"object"},"WorkloadRefAndStatus":{"description":"Id, name and status of a workspace or training","required":["id","name"],"properties":{"id":{"$ref":"#/components/schemas/WorkloadId1"},"name":{"$ref":"#/components/schemas/WorkloadName"},"status":{"description":"The status of the workspace or training.","type":"string","minLength":1}}},"WorkloadId1":{"description":"A unique ID of the workload.","type":"string","format":"uuid"},"WorkloadName":{"description":"The name of the workload.","type":"string","minLength":1,"pattern":".*"},"AssetRef":{"description":"Reference information about an asset.","required":["id","name"],"properties":{"id":{"$ref":"#/components/schemas/AssetId"},"name":{"$ref":"#/components/schemas/AssetName"}}},"AssetsUsageRef":{"description":"Reference information about usage of assets by other assets, for example datasources that uses credentials.","properties":{"environment":{"nullable":true,"type":"object","description":"environment asset.","allOf":[{"$ref":"#/components/schemas/EnvironmentAssetRef"}],"deprecated":true},"environments":{"type":"array","items":{"$ref":"#/components/schemas/AssetRef"}},"compute":{"$ref":"#/components/schemas/AssetsUsageRefCompute","deprecated":true},"computes":{"type":"array","items":{"$ref":"#/components/schemas/AssetRef"}},"datasources":{"type":"array","items":{"$ref":"#/components/schemas/AssetDatasourceRef"}}}},"EnvironmentAssetRef":{"description":"Reference information about environment asset.","required":["id","name"],"properties":{"id":{"$ref":"#/components/schemas/AssetId"},"name":{"$ref":"#/components/schemas/AssetName"},"toolTypes":{"description":"the type of tools as defined in the connections of the environment asset.","type":"array","nullable":true,"items":{"$ref":"#/components/schemas/ToolType"}}}},"ToolType":{"description":"Super set of Internal and External tool types.","type":"string","minLength":1,"enum":["jupyter-notebook","pycharm","visual-studio-code","tensorboard","rstudio","mlflow","custom","wandb","matlab","comet","chatbot-ui"]},"AssetsUsageRefCompute":{"allOf":[{"$ref":"#/components/schemas/AssetRef"}],"nullable":true,"type":"object"},"AssetDatasourceRef":{"description":"Reference information about a datasource asset.","required":["id","name","kind"],"properties":{"id":{"$ref":"#/components/schemas/AssetId"},"name":{"$ref":"#/components/schemas/AssetName"},"kind":{"$ref":"#/components/schemas/AssetKind"},"overrides":{"$ref":"#/components/schemas/DataSourceOverrides","deprecated":true}}},"DataSourceOverrides":{"description":"specific fields to override in the data source.","type":"object","nullable":true,"properties":{"containerPath":{"type":"string","minLength":1,"nullable":true}}},"UsageTimesInfo":{"description":"Details about times the asset has been used by workloads, etc.","properties":{"lastUsedByWorkload":{"description":"The time at which the asset were last used by a workload of given type and project. This field requires complyToProject and complyToWorkload types flags of the API, to specify the workload type and project id.","type":"string","minLength":1,"format":"date-time","nullable":true}},"nullable":true,"type":"object"},"ComplianceInfo":{"description":"Compliance of an asset with creation of workloads in a given project.","properties":{"imposed":{"description":"Whether the asset is imposed on created workloads by the administrator.","type":"boolean"},"compliance":{"description":"Whether the asset info complies with creation of workloads in the project.","type":"boolean"},"reason":{"description":"For asset that does not comply, specify one or more reason why.","type":"array","items":{"$ref":"#/components/schemas/ComplianceInfoReason"}}},"nullable":true,"type":"object"},"ComplianceInfoReason":{"description":"An issue preventing the use of a template or asset for creating workloads in a given project.","required":["details"],"properties":{"field":{"description":"For policy related issues, includes a json path to the field in the policy for which the issue applies.","nullable":true,"type":"string","pattern":".*"},"details":{"description":"Explanation of the issue.","type":"string","pattern":".*"},"rule":{"$ref":"#/components/schemas/PolicyRuleEnum"}}},"PolicyRuleEnum":{"description":"Indicates which validation rule (e.g., min, max, step, options, required, canEdit, canAdd) conflicted with policy restrictions, causing the asset or template to be rejected.","type":"string","nullable":true,"enum":["min","max","step","options","required","canEdit","canAdd","locked","blocked"]},"AssetClusterStatusInfo":{"properties":{"status":{"$ref":"#/components/schemas/AssetSyncStatusEnum"},"issues":{"$ref":"#/components/schemas/AssetClusterStatusIssues"},"message":{"type":"string"},"url":{"type":"string"}},"nullable":true,"type":"object"},"AssetSyncStatusEnum":{"type":"string","enum":["Creating","Deleting","Failed","Deletion failed","Issues found","No issues found","No status","Updating"]},"AssetClusterStatusIssues":{"type":"array","items":{"$ref":"#/components/schemas/AssetClusterStatusIssue"}},"AssetClusterStatusIssue":{"type":"object","required":["scopeId","scopeType","issue"],"properties":{"scopeId":{"$ref":"#/components/schemas/ScopeId"},"scopeType":{"$ref":"#/components/schemas/ScopeType"},"issue":{"$ref":"#/components/schemas/AssetClusterStatusIssueEnum"}}},"ScopeId":{"type":"string","description":"The id of the cluster, department or project, depending on the scope type."},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"AssetClusterStatusIssueEnum":{"type":"string","enum":["ReplicationError","LostPhase","NotCreated"]},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/asset/datasource/git/{AssetId}":{"get":{"summary":"Get a Git asset.","description":"Use to retrieve the details of a Git datasource asset by id.","operationId":"get_git_asset_by_id","tags":["Git"],"parameters":[{"$ref":"#/components/parameters/IncludeUsageInfo"},{"$ref":"#/components/parameters/ComplyToProject"},{"$ref":"#/components/parameters/ComplyToWorkloadType"},{"$ref":"#/components/parameters/IncludeStatus"},{"$ref":"#/components/parameters/ComplyToReplicaType"}],"responses":{"200":{"description":"Request completed successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitAsset"}}}},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Update a Git asset.

> Use to update the details of Git datasource asset by id.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.24"},"tags":[{"name":"Git","description":"Use Git as a data source location for data sets that are relevant to the workload being submitted."}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"schemas":{"GitUpdateRequest":{"required":["meta","spec"],"properties":{"meta":{"$ref":"#/components/schemas/AssetUpdateRequest"},"spec":{"$ref":"#/components/schemas/GitAssetSpec"}}},"AssetUpdateRequest":{"allOf":[{"$ref":"#/components/schemas/AssetUpdatableFields"}]},"AssetUpdatableFields":{"required":["name"],"properties":{"name":{"$ref":"#/components/schemas/AssetName"},"description":{"$ref":"#/components/schemas/AssetDescription"}}},"AssetName":{"description":"The name of the asset.","type":"string","minLength":1},"AssetDescription":{"description":"The description of the asset.","type":"string","minLength":1,"maxLength":250,"nullable":true},"GitAssetSpec":{"allOf":[{"$ref":"#/components/schemas/GitCommon"},{"$ref":"#/components/schemas/GitPasswordAsset"},{"$ref":"#/components/schemas/GitCredentialId"}]},"GitCommon":{"properties":{"repository":{"description":"URL to a remote Git repository. The content of this repository will be mapped to the container running the workload. (mandatory)","type":"string","minLength":1,"maxLength":2048,"nullable":true},"branch":{"description":"Specific branch to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"revision":{"description":"Specific revision to synchronize the repository from.","type":"string","minLength":1,"maxLength":63,"nullable":true},"path":{"description":"Local path within the workload to which the Git repository will be mapped (mandatory).","type":"string","minLength":1,"maxLength":4096,"nullable":true}},"nullable":true,"type":"object"},"GitPasswordAsset":{"properties":{"passwordAssetId":{"description":"UUID of a credential asset of type userid / password. This credential is required for authenticating with private Git repositories using SSH. (deprecated - use credentialId instead).","type":"string","format":"uuid","nullable":true,"minLength":1}}},"GitCredentialId":{"properties":{"credentialId":{"description":"UUID of a credential asset of type generic secret or user id / password required for authenticating with private Git repositories. For generic secret, the credential asset must contain a key-value pair where the key is ssh (lowercase) and the value is a valid private SSH key","type":"string","format":"uuid","nullable":true,"minLength":1}}},"GitAsset":{"required":["meta","spec"],"properties":{"meta":{"$ref":"#/components/schemas/AssetMeta"},"spec":{"$ref":"#/components/schemas/GitAssetSpec"},"usedBy":{"$ref":"#/components/schemas/AssetUsageInfo"},"usageTimes":{"$ref":"#/components/schemas/UsageTimesInfo"},"compliance":{"$ref":"#/components/schemas/ComplianceInfo"},"status":{"$ref":"#/components/schemas/AssetClusterStatusInfo"}}},"AssetMeta":{"allOf":[{"$ref":"#/components/schemas/AssetUpdatableFields"},{"$ref":"#/components/schemas/AssetCreationFields"},{"$ref":"#/components/schemas/AssetReadOnlyFields"}]},"AssetCreationFields":{"type":"object","required":["scope"],"properties":{"scope":{"$ref":"#/components/schemas/Scope"},"clusterId":{"$ref":"#/components/schemas/ClusterIdOptional"},"departmentId":{"description":"The id of the department. Must be specified for department scoped assets.","type":"string","nullable":true,"minLength":1},"projectId":{"description":"The id of the project. Must be specified for project scoped assets.","type":"integer","format":"int32","nullable":true},"autoDelete":{"description":"The asset will be deleted automatically. This is intended for internal use.","type":"boolean","nullable":true,"default":false},"workloadSupportedTypes":{"$ref":"#/components/schemas/WorkloadSupportedTypes"},"private":{"description":"The asset will be private to the user who created it. supported only for docker registry and generic secrets","type":"boolean","nullable":true,"default":false}}},"Scope":{"description":"The scope in which an asset can be used. The highest scope, system, is intended for internal purposes only.","type":"string","minLength":1,"enum":["system","tenant","cluster","department","project"]},"ClusterIdOptional":{"description":"The id of the cluster.","type":"string","format":"uuid","minLength":1,"nullable":true},"WorkloadSupportedTypes":{"properties":{"inference":{"description":"Is inference a supported workload type.","type":"boolean","nullable":true},"workspace":{"description":"Is workspace a supported workload type.","type":"boolean","nullable":true},"training":{"description":"Is training a supported workload type.","type":"boolean","nullable":true},"distributed":{"description":"Is distributed a supported workload type.","type":"boolean","nullable":true},"distFramework":{"description":"The distributed training framework used in the workload.","type":"string","enum":["MPI","PyTorch","TF","XGBoost"],"nullable":true}},"nullable":true,"type":"object"},"AssetReadOnlyFields":{"required":["id","kind","createdBy","createdAt","updatedBy","updatedAt"],"properties":{"id":{"$ref":"#/components/schemas/AssetId"},"kind":{"$ref":"#/components/schemas/AssetKind"},"tenantId":{"description":"The id of the tenant.","type":"integer","format":"int32","nullable":true},"createdBy":{"description":"The user who created the asset.","type":"string","minLength":1},"createdAt":{"description":"The time at which the asset were created","type":"string","minLength":1,"format":"date-time"},"updatedBy":{"description":"The user who updated the asset.","type":"string","minLength":1},"updatedAt":{"description":"The time at which the asset has been updated","type":"string","minLength":1,"format":"date-time"},"deletedAt":{"description":"Deletion time of the asset (relevant for assets that sync to the cluster)","type":"string","minLength":1,"format":"date-time"},"deletedBy":{"description":"The user who deleted the asset","type":"string","minLength":1},"projectName":{"description":"The name of the project that the asset is associated with, for project scoped assets.","type":"string","minLength":1,"nullable":true},"updateCount":{"$ref":"#/components/schemas/UpdateCount"}},"type":"object"},"AssetId":{"description":"Unique identifier of the asset.","type":"string","format":"uuid","minLength":1},"AssetKind":{"description":"The kind of the asset.","type":"string","minLength":1,"enum":["compute","environment","accessKey","dockerRegistry","password","genericSecret","registry","s3","git","nfs","pvc","hostPath","workload-template","model","config-map","secret-volume","data-volume","ngcApiKey"]},"UpdateCount":{"description":"the value of an update counter of a data in the system.","type":"integer","format":"int64"},"AssetUsageInfo":{"description":"Details about resources that use the asset.","properties":{"workspaces":{"description":"workspaces that rely on this asset.","type":"array","items":{"$ref":"#/components/schemas/WorkloadRefAndStatus"}},"trainings":{"description":"trainings that rely on this asset.","type":"array","items":{"$ref":"#/components/schemas/WorkloadRefAndStatus"}},"distributed":{"description":"distributed trainings that rely on this asset.","type":"array","items":{"$ref":"#/components/schemas/WorkloadRefAndStatus"}},"inferences":{"description":"inferences that rely on this asset.","type":"array","items":{"$ref":"#/components/schemas/WorkloadRefAndStatus"}},"templates":{"description":"templates that rely on this asset.","type":"array","items":{"$ref":"#/components/schemas/AssetRef"}},"assets":{"description":"list of other assets that use this asset. specifically, accessKeys used by s3, and passwords used by git.","$ref":"#/components/schemas/AssetsUsageRef"}},"nullable":true,"type":"object"},"WorkloadRefAndStatus":{"description":"Id, name and status of a workspace or training","required":["id","name"],"properties":{"id":{"$ref":"#/components/schemas/WorkloadId1"},"name":{"$ref":"#/components/schemas/WorkloadName"},"status":{"description":"The status of the workspace or training.","type":"string","minLength":1}}},"WorkloadId1":{"description":"A unique ID of the workload.","type":"string","format":"uuid"},"WorkloadName":{"description":"The name of the workload.","type":"string","minLength":1,"pattern":".*"},"AssetRef":{"description":"Reference information about an asset.","required":["id","name"],"properties":{"id":{"$ref":"#/components/schemas/AssetId"},"name":{"$ref":"#/components/schemas/AssetName"}}},"AssetsUsageRef":{"description":"Reference information about usage of assets by other assets, for example datasources that uses credentials.","properties":{"environment":{"nullable":true,"type":"object","description":"environment asset.","allOf":[{"$ref":"#/components/schemas/EnvironmentAssetRef"}],"deprecated":true},"environments":{"type":"array","items":{"$ref":"#/components/schemas/AssetRef"}},"compute":{"$ref":"#/components/schemas/AssetsUsageRefCompute","deprecated":true},"computes":{"type":"array","items":{"$ref":"#/components/schemas/AssetRef"}},"datasources":{"type":"array","items":{"$ref":"#/components/schemas/AssetDatasourceRef"}}}},"EnvironmentAssetRef":{"description":"Reference information about environment asset.","required":["id","name"],"properties":{"id":{"$ref":"#/components/schemas/AssetId"},"name":{"$ref":"#/components/schemas/AssetName"},"toolTypes":{"description":"the type of tools as defined in the connections of the environment asset.","type":"array","nullable":true,"items":{"$ref":"#/components/schemas/ToolType"}}}},"ToolType":{"description":"Super set of Internal and External tool types.","type":"string","minLength":1,"enum":["jupyter-notebook","pycharm","visual-studio-code","tensorboard","rstudio","mlflow","custom","wandb","matlab","comet","chatbot-ui"]},"AssetsUsageRefCompute":{"allOf":[{"$ref":"#/components/schemas/AssetRef"}],"nullable":true,"type":"object"},"AssetDatasourceRef":{"description":"Reference information about a datasource asset.","required":["id","name","kind"],"properties":{"id":{"$ref":"#/components/schemas/AssetId"},"name":{"$ref":"#/components/schemas/AssetName"},"kind":{"$ref":"#/components/schemas/AssetKind"},"overrides":{"$ref":"#/components/schemas/DataSourceOverrides","deprecated":true}}},"DataSourceOverrides":{"description":"specific fields to override in the data source.","type":"object","nullable":true,"properties":{"containerPath":{"type":"string","minLength":1,"nullable":true}}},"UsageTimesInfo":{"description":"Details about times the asset has been used by workloads, etc.","properties":{"lastUsedByWorkload":{"description":"The time at which the asset were last used by a workload of given type and project. This field requires complyToProject and complyToWorkload types flags of the API, to specify the workload type and project id.","type":"string","minLength":1,"format":"date-time","nullable":true}},"nullable":true,"type":"object"},"ComplianceInfo":{"description":"Compliance of an asset with creation of workloads in a given project.","properties":{"imposed":{"description":"Whether the asset is imposed on created workloads by the administrator.","type":"boolean"},"compliance":{"description":"Whether the asset info complies with creation of workloads in the project.","type":"boolean"},"reason":{"description":"For asset that does not comply, specify one or more reason why.","type":"array","items":{"$ref":"#/components/schemas/ComplianceInfoReason"}}},"nullable":true,"type":"object"},"ComplianceInfoReason":{"description":"An issue preventing the use of a template or asset for creating workloads in a given project.","required":["details"],"properties":{"field":{"description":"For policy related issues, includes a json path to the field in the policy for which the issue applies.","nullable":true,"type":"string","pattern":".*"},"details":{"description":"Explanation of the issue.","type":"string","pattern":".*"},"rule":{"$ref":"#/components/schemas/PolicyRuleEnum"}}},"PolicyRuleEnum":{"description":"Indicates which validation rule (e.g., min, max, step, options, required, canEdit, canAdd) conflicted with policy restrictions, causing the asset or template to be rejected.","type":"string","nullable":true,"enum":["min","max","step","options","required","canEdit","canAdd","locked","blocked"]},"AssetClusterStatusInfo":{"properties":{"status":{"$ref":"#/components/schemas/AssetSyncStatusEnum"},"issues":{"$ref":"#/components/schemas/AssetClusterStatusIssues"},"message":{"type":"string"},"url":{"type":"string"}},"nullable":true,"type":"object"},"AssetSyncStatusEnum":{"type":"string","enum":["Creating","Deleting","Failed","Deletion failed","Issues found","No issues found","No status","Updating"]},"AssetClusterStatusIssues":{"type":"array","items":{"$ref":"#/components/schemas/AssetClusterStatusIssue"}},"AssetClusterStatusIssue":{"type":"object","required":["scopeId","scopeType","issue"],"properties":{"scopeId":{"$ref":"#/components/schemas/ScopeId"},"scopeType":{"$ref":"#/components/schemas/ScopeType"},"issue":{"$ref":"#/components/schemas/AssetClusterStatusIssueEnum"}}},"ScopeId":{"type":"string","description":"The id of the cluster, department or project, depending on the scope type."},"ScopeType":{"type":"string","enum":["system","tenant","cluster","department","project"]},"AssetClusterStatusIssueEnum":{"type":"string","enum":["ReplicationError","LostPhase","NotCreated"]},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}},"responses":{"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/asset/datasource/git/{AssetId}":{"put":{"summary":"Update a Git asset.","description":"Use to update the details of Git datasource asset by id.","operationId":"update_git_asset_by_id","tags":["Git"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitUpdateRequest"}}}},"responses":{"202":{"description":"Request accepted successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GitAsset"}}}},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"default":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```

## Delete a Git asset.

> Use to delete a Git datasource asset by id.

```json
{"openapi":"3.0.3","info":{"title":"NVIDIA Run:ai","version":"2.24"},"tags":[{"name":"Git","description":"Use Git as a data source location for data sets that are relevant to the workload being submitted."}],"servers":[{"url":"https://app.run.ai"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Bearer authentication"}},"responses":{"202Accepted":{"description":"Accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpResponse"}}}},"401Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503ServiceUnavailable":{"description":"unexpected error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"HttpResponse":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"}}},"Error":{"required":["code","message"],"properties":{"code":{"type":"integer","minimum":100,"maximum":599},"message":{"type":"string"},"details":{"type":"string"}}}}},"paths":{"/api/v1/asset/datasource/git/{AssetId}":{"delete":{"summary":"Delete a Git asset.","description":"Use to delete a Git datasource asset by id.","operationId":"delete_git_asset_by_id","tags":["Git"],"responses":{"202":{"$ref":"#/components/responses/202Accepted"},"401":{"$ref":"#/components/responses/401Unauthorized"},"403":{"$ref":"#/components/responses/403Forbidden"},"404":{"$ref":"#/components/responses/404NotFound"},"503":{"$ref":"#/components/responses/503ServiceUnavailable"}}}}}}
```
