Skip to content

Project & Workflow Service APIs

The Project & Workflow service has four different categories of API's 1.Projects 2.Project life cycle events 3.Project resources 4.Work in progress project resources

Open API 3.0 - Swagger

  • Swagger UI : https://host/context-path/swagger (will redirect to https://host/context-path/swagger-ui/index.html)
  • api-docs (JSON ) : https://host/context-path/api-docs
  • api-docs (YAML) : https://host/context-path/api-docs.yaml

All the Swagger and OpenAPI related common properties are managed here swagger.properties

Projects

Query all collaboration projects

This API returns all collaboration projects

 GET /api/pws/v1/projects
curl
curl --request GET \
  --url '/api/pws/v1/projects' \
  --header 'accept: application/json' \
  --header 'authorization: Bearer <JWT>' \
  --header 'content-type: application/json' \
  --header 'Data-Partition-Id: common' 

Create new collaboration project

This API creates new collaboration project

 POST /api/pws/v1/projects
curl
curl --request POST \
  --url '/api/pws/v1/projects'\
  --header 'accept: application/json' \
  --header 'authorization: Bearer <JWT>' \
  --header 'content-type: application/json' \
  --header 'Data-Partition-Id: common' \
  --data '{
  "kind": "osdu:wks:master-data--CollaborationProject:1.0.0",
  "version": 1562066009929332,
  "acl": {
    "owners": [
      "data.default.owners@osdu.example.com"
    ],
    "viewers": [
      "data.default.viewers@osdu.example.com"
    ]
  },
  "legal": {
    "legaltags": [
      "osdu-public-usa-dataset"
    ],
    "otherRelevantDataCountries": [
      "US"
    ],
    "status": "compliant"
  },
  "tags": {
    "test": "Integration test get"
  },
  "createTime": "2020-12-16T11:46:20.163Z",
  "createUser": "some-user@some-company-cloud.com",
  "modifyTime": "2020-12-16T11:52:24.477Z",
  "modifyUser": "some-user@some-company-cloud.com",
  "ancestry": {
    "parents": []
  },
  "meta": [
    {
      "kind": "Unit",
      "name": "m",
      "persistableReference": "{\"abcd\":{\"a\":0.0,\"b\":1.0,\"c\":1.0,\"d\":0.0},\"symbol\":\"m\",\"baseMeasurement\":{\"ancestry\":\"L\",\"type\":\"UM\"},\"type\":\"UAD\"}",
      "unitOfMeasureID": "namespace:reference-data--UnitOfMeasure:m:",
      "propertyNames": [
        "ProjectSpecifications[0].ProjectSpecificationQuantity",
        "Parameters[0].DataQuantityParameter"
      ]
    }
  ],
  "data": {
    "ResourceHomeRegionID": "namespace:reference-data--OSDURegion:AWSEastUSA:",
    "ResourceHostRegionIDs": [
      "namespace:reference-data--OSDURegion:AWSEastUSA:"
    ],
    "ResourceCurationStatus": "namespace:reference-data--ResourceCurationStatus:Created:",
    "ResourceLifecycleStatus": "namespace:reference-data--ResourceLifecycleStatus:Loading:",
    "ResourceSecurityClassification": "namespace:reference-data--ResourceSecurityClassification:Public:",
    "Source": "Example Data Source",
    "ExistenceKind": "namespace:reference-data--ExistenceKind:Prototype:",
    "NameAliases": [
      {
        "AliasName": "Example AliasName",
        "AliasNameTypeID": "namespace:reference-data--AliasNameType:RegulatoryIdentifier:",
        "DefinitionOrganisationID": "namespace:master-data--Organisation:SomeUniqueOrganisationID:",
        "EffectiveDateTime": "2020-02-13T09:13:15.55Z",
        "TerminationDateTime": "2020-02-13T09:13:15.55Z"
      }
    ],
    "GeoContexts": [
      {
        "GeoPoliticalEntityID": "namespace:master-data--GeoPoliticalEntity:SomeUniqueGeoPoliticalEntityID:",
        "GeoTypeID": "namespace:reference-data--GeoPoliticalEntityType:Area:"
      },
      {
        "BasinID": "namespace:master-data--Basin:SomeUniqueBasinID:",
        "GeoTypeID": "namespace:reference-data--BasinType:ArcWrenchOceanContinent:"
      },
      {
        "FieldID": "namespace:master-data--Field:SomeUniqueFieldID:",
        "GeoTypeID": "Field"
      },
      {
        "PlayID": "namespace:master-data--Play:SomeUniquePlayID:",
        "GeoTypeID": "namespace:reference-data--PlayType:CarbonCaptureAndStorage:"
      },
      {
        "ProspectID": "namespace:master-data--Prospect:SomeUniqueProspectID:",
        "GeoTypeID": "namespace:reference-data--ProspectType:Structural.Anticline:"
      }
    ],
    "SpatialLocation": {
      "SpatialLocationCoordinatesDate": "2020-02-13T09:13:15.55Z",
      "QuantitativeAccuracyBandID": "namespace:reference-data--QuantitativeAccuracyBand:Length.LessThan1m:",
      "QualitativeSpatialAccuracyTypeID": "namespace:reference-data--QualitativeSpatialAccuracyType:Assumed:",
      "CoordinateQualityCheckPerformedBy": "Example CoordinateQualityCheckPerformedBy",
      "CoordinateQualityCheckDateTime": "2020-02-13T09:13:15.55Z",
      "CoordinateQualityCheckRemarks": [
        "Example CoordinateQualityCheckRemarks"
      ],
      "AsIngestedCoordinates": {
        "type": "AnyCrsFeatureCollection",
        "CoordinateReferenceSystemID": "namespace:reference-data--CoordinateReferenceSystem:BoundProjected:EPSG::32021_EPSG::15851:",
        "VerticalCoordinateReferenceSystemID": "namespace:reference-data--CoordinateReferenceSystem:Vertical:EPSG::5714:",
        "VerticalUnitID": "namespace:reference-data--UnitOfMeasure:m:",
        "persistableReferenceCrs": "{\"authCode\":{\"auth\":\"OSDU\",\"code\":\"32021079\"},\"lateBoundCRS\":{\"authCode\":{\"auth\":\"EPSG\",\"code\":\"32021\"},\"name\":\"NAD_1927_StatePlane_North_Dakota_South_FIPS_3302\",\"type\":\"LBC\",\"ver\":\"PE_10_9_1\",\"wkt\":\"PROJCS[\\\"NAD_1927_StatePlane_North_Dakota_South_FIPS_3302\\\",GEOGCS[\\\"GCS_North_American_1927\\\",DATUM[\\\"D_North_American_1927\\\",SPHEROID[\\\"Clarke_1866\\\",6378206.4,294.9786982]],PRIMEM[\\\"Greenwich\\\",0.0],UNIT[\\\"Degree\\\",0.0174532925199433]],PROJECTION[\\\"Lambert_Conformal_Conic\\\"],PARAMETER[\\\"False_Easting\\\",2000000.0],PARAMETER[\\\"False_Northing\\\",0.0],PARAMETER[\\\"Central_Meridian\\\",-100.5],PARAMETER[\\\"Standard_Parallel_1\\\",46.18333333333333],PARAMETER[\\\"Standard_Parallel_2\\\",47.48333333333333],PARAMETER[\\\"Latitude_Of_Origin\\\",45.66666666666666],UNIT[\\\"Foot_US\\\",0.3048006096012192],AUTHORITY[\\\"EPSG\\\",32021]]\"},\"name\":\"NAD27 * OGP-Usa Conus / North Dakota CS27 South zone [32021,15851]\",\"singleCT\":{\"authCode\":{\"auth\":\"EPSG\",\"code\":\"15851\"},\"name\":\"NAD_1927_To_WGS_1984_79_CONUS\",\"type\":\"ST\",\"ver\":\"PE_10_9_1\",\"wkt\":\"GEOGTRAN[\\\"NAD_1927_To_WGS_1984_79_CONUS\\\",GEOGCS[\\\"GCS_North_American_1927\\\",DATUM[\\\"D_North_American_1927\\\",SPHEROID[\\\"Clarke_1866\\\",6378206.4,294.9786982]],PRIMEM[\\\"Greenwich\\\",0.0],UNIT[\\\"Degree\\\",0.0174532925199433]],GEOGCS[\\\"GCS_WGS_1984\\\",DATUM[\\\"D_WGS_1984\\\",SPHEROID[\\\"WGS_1984\\\",6378137.0,298.257223563]],PRIMEM[\\\"Greenwich\\\",0.0],UNIT[\\\"Degree\\\",0.0174532925199433]],METHOD[\\\"NADCON\\\"],PARAMETER[\\\"Dataset_conus\\\",0.0],OPERATIONACCURACY[5.0],AUTHORITY[\\\"EPSG\\\",15851]]\"},\"type\":\"EBC\",\"ver\":\"PE_10_9_1\"}",
        "persistableReferenceVerticalCrs": "{\"authCode\":{\"auth\":\"EPSG\",\"code\":\"5714\"},\"name\":\"MSL_Height\",\"type\":\"LBC\",\"ver\":\"PE_10_9_1\",\"wkt\":\"VERTCS[\\\"MSL_Height\\\",VDATUM[\\\"Mean_Sea_Level\\\"],PARAMETER[\\\"Vertical_Shift\\\",0.0],PARAMETER[\\\"Direction\\\",1.0],UNIT[\\\"Meter\\\",1.0],AUTHORITY[\\\"EPSG\\\",5714]]\"}",
        "persistableReferenceUnitZ": "{\"scaleOffset\":{\"scale\":1.0,\"offset\":0.0},\"symbol\":\"m\",\"baseMeasurement\":{\"ancestry\":\"Length\",\"type\":\"UM\"},\"type\":\"USO\"}",
        "features": [
          {
            "type": "AnyCrsFeature",
            "properties": {},
            "geometry": {
              "type": "AnyCrsPoint",
              "coordinates": [
                12345.6,
                12345.6
              ],
              "bbox": [
                12345.6,
                12345.6,
                12345.6,
                12345.6
              ]
            },
            "bbox": [
              12345.6,
              12345.6,
              12345.6,
              12345.6
            ]
          }
        ],
        "bbox": [
          12345.6,
          12345.6,
          12345.6,
          12345.6
        ]
      },
      "Wgs84Coordinates": {
        "type": "FeatureCollection",
        "features": [
          {
            "type": "Feature",
            "properties": {},
            "geometry": {
              "type": "Point",
              "coordinates": [
                12345.6,
                12345.6
              ],
              "bbox": [
                12345.6,
                12345.6,
                12345.6,
                12345.6
              ]
            },
            "bbox": [
              12345.6,
              12345.6,
              12345.6,
              12345.6
            ]
          }
        ],
        "bbox": [
          12345.6,
          12345.6,
          12345.6,
          12345.6
        ]
      },
      "AppliedOperations": [
        "conversion from ED_1950_UTM_Zone_31N to GCS_European_1950; 1 points converted",
        "transformation GCS_European_1950 to GCS_WGS_1984 using ED_1950_To_WGS_1984_24; 1 points successfully transformed"
      ],
      "SpatialParameterTypeID": "namespace:reference-data--SpatialParameterType:Outline:",
      "SpatialGeometryTypeID": "namespace:reference-data--SpatialGeometryType:Point:"
    },
    "VersionCreationReason": "Example VersionCreationReason",
    "TechnicalAssuranceTypeID": "namespace:reference-data--TechnicalAssuranceType:Certified:",
    "TechnicalAssurances": [
      {
        "TechnicalAssuranceTypeID": "namespace:reference-data--TechnicalAssuranceType:Trusted:",
        "Reviewers": [
          {
            "RoleTypeID": "namespace:reference-data--ContactRoleType:AccountOwner:",
            "DataGovernanceRoleTypeID": "namespace:reference-data--DataGovernanceRoleType:SME:",
            "WorkflowPersonaTypeID": "namespace:reference-data--WorkflowPersonaType:SeismicProcessor:",
            "OrganisationID": "namespace:master-data--Organisation:SomeUniqueOrganisationID:",
            "Name": "John Smith"
          }
        ],
        "AcceptableUsage": [
          {
            "WorkflowUsageTypeID": "namespace:reference-data--WorkflowUsageType:SeismicProcessing:",
            "WorkflowPersonaTypeID": "namespace:reference-data--WorkflowPersonaType:SeismicProcessor:",
            "DataQualityRuleSetID": "namespace:reference-data--DataQualityRuleSet:SeismicProcessingQCRuleSet:",
            "DataQualityID": "namespace:work-product-component--DataQuality:6a433d16-07c8-4f4d-9ddc-5608e2ec4234:1562066077849221",
            "ValueChainStatusTypeID": "namespace:reference-data--ValueChainStatusType:Exploration:"
          }
        ],
        "UnacceptableUsage": [
          {
            "WorkflowUsageTypeID": "namespace:reference-data--WorkflowUsageType:SeismicInterpretation:",
            "WorkflowPersonaTypeID": "namespace:reference-data--WorkflowPersonaType:SeismicInterpreter:",
            "DataQualityRuleSetID": "namespace:reference-data--DataQualityRuleSet:SeismicInterpretationQCRuleSet:",
            "DataQualityID": "namespace:work-product-component--DataQuality:d79bf97c-ff7c-4b82-89b5-c88520c15017:1562066009929332",
            "ValueChainStatusTypeID": "namespace:reference-data--ValueChainStatusType:FieldDevelopment:"
          }
        ],
        "EffectiveDate": "2020-02-13",
        "Comment": "This is free form text from reviewer, e.g. restrictions on use"
      }
    ],
    "ProjectID": "Example External Project Identifier",
    "ProjectName": "Example ProjectName",
    "Purpose": "Example Purpose",
    "ProjectBeginDate": "2020-02-13T09:13:15.55Z",
    "ProjectEndDate": "2020-02-13T09:13:15.55Z",
    "FundsAuthorizations": [
      {
        "AuthorizationID": "Example AuthorizationID",
        "EffectiveDateTime": "2020-02-13T09:13:15.55Z",
        "FundsAmount": 12345.6,
        "CurrencyID": "namespace:reference-data--Currency:AFN:"
      }
    ],
    "ContractIDs": [
      "namespace:master-data--Agreement:SomeUniqueAgreementID:"
    ],
    "Operator": "namespace:master-data--Organisation:SomeUniqueOrganisationID:",
    "Contractors": [
      {
        "ContractorOrganisationID": "namespace:master-data--Organisation:SomeUniqueOrganisationID:",
        "ContractorCrew": "Example ContractorCrew",
        "ContractorTypeID": "namespace:reference-data--ContractorType:Record:"
      }
    ],
    "Personnel": [
      {
        "PersonName": "Example PersonName",
        "CompanyOrganisationID": "namespace:master-data--Organisation:SomeUniqueOrganisationID:",
        "ProjectRoleID": "namespace:reference-data--ProjectRole:ProjMgr:"
      }
    ],
    "ProjectSpecifications": [
      {
        "EffectiveDateTime": "2020-02-13T09:13:15.55Z",
        "TerminationDateTime": "2020-02-13T09:13:15.55Z",
        "ProjectSpecificationQuantity": 12345.6,
        "ProjectSpecificationDateTime": "2020-02-13T09:13:15.55Z",
        "ProjectSpecificationIndicator": true,
        "ProjectSpecificationText": "Example ProjectSpecificationText",
        "UnitOfMeasureID": "namespace:reference-data--UnitOfMeasure:m:",
        "ParameterTypeID": "namespace:reference-data--ParameterType:SlotName:"
      }
    ],
    "ProjectStates": [
      {
        "EffectiveDateTime": "2020-02-13T09:13:15.55Z",
        "TerminationDateTime": "2020-02-13T09:13:15.55Z",
        "ProjectStateTypeID": "namespace:reference-data--ProjectStateType:Prop:"
      }
    ],
    "ActivityTemplateID": "namespace:master-data--ActivityTemplate:SomeUniqueActivityTemplateID:",
    "Parameters": [
      {
        "Title": "Example Title",
        "Index": 2,
        "Selection": "Example Selection",
        "Keys": [
          {
            "ObjectParameterKey": "namespace:any-group-type--AnyIndividualType:SomeUniqueAnyIndividualTypeID:",
            "TimeIndexParameterKey": "11:13:15.55+02:00",
            "ParameterKey": "Example Internal Parameter Key",
            "IntegerParameterKey": 2,
            "StringParameterKey": "Example String Parameter Key"
          }
        ],
        "DataObjectParameter": "namespace:any-group-type--AnyIndividualType:SomeUniqueAnyIndividualTypeID:",
        "DataQuantityParameter": 12345.6,
        "IntegerQuantityParameter": 2,
        "StringParameter": "Example String Parameter",
        "TimeIndexParameter": "2020-02-13T09:13:15.55Z",
        "BooleanParameter": true,
        "ParameterKindID": "namespace:reference-data--ParameterKind:Integer:",
        "ParameterRoleID": "namespace:reference-data--ParameterRole:Input:",
        "DataQuantityParameterUOMID": "namespace:reference-data--UnitOfMeasure:m:"
      }
    ],
    "ActivityStates": [
      {
        "EffectiveDateTime": "2020-02-13T09:13:15.55Z",
        "TerminationDateTime": "2020-02-13T09:13:15.55Z",
        "ActivityStatusID": "namespace:reference-data--ActivityStatus:Planned:",
        "Remark": "Example Remark"
      }
    ],
    "LastActivityState": {
      "EffectiveDateTime": "2020-02-13T09:13:15.55Z",
      "TerminationDateTime": "2020-02-13T09:13:15.55Z",
      "ActivityStatusID": "namespace:reference-data--ActivityStatus:Planned:",
      "Remark": "Example Remark"
    },
    "Name": "Project 1",
    "ProjectContributorACL": {
      "owners": [
        "project_contributor@company.com"
      ],
      "viewers": [
        "project_viewer@company.com"
      ]
    },
    "DefaultWIPACL": {
      "owners": [
        "project_contributor@company.com"
      ],
      "viewers": [
        "project_viewer@company.com"
      ]
    },
    "LifecycleStatusID": "namespace:reference-data--CollaborationProjectLifecycleStatus:Open:",
    "CreationDateTime": "2023-11-08T09:13:15.55Z",
    "EndDateTime": "2024-04-03T14:10:54.512Z",
    "Description": "Find all the hydrocarbons on the moon"
  }
}


Query collaboration project by id

This API returns the collaboration project by project id

 GET /api/pws/v1/projects/{id}
curl
curl --request GET \
  --url '/api/pws/v1/projects/{id}' \
  --header 'accept: application/json' \
  --header 'authorization: Bearer <JWT>' \
  --header 'content-type: application/json' \
  --header 'Data-Partition-Id: common' 

Project resources

Query all collaboration project resources

This API returns all resources assigned to the collaboration project by project id

 GET /api/pws/v1/projects/{id}/resources
curl
curl --request GET \
  --url '/api/pws/v1/projects/{id}/resources' \
  --header 'accept: application/json' \
  --header 'authorization: Bearer <JWT>' \
  --header 'content-type: application/json' \
  --header 'Data-Partition-Id: common' 

Assign the collaboration project resources

This API assigns resources already created in system to the collaboration project by project id

 POST /api/pws/v1/projects/{id}/resources
curl
curl --request POST \
  --url '/api/pws/v1/projects/{id}/resources' \
  --header 'accept: application/json' \
  --header 'authorization: Bearer <JWT>' \
  --header 'content-type: application/json' \
  --header 'Data-Partition-Id: common' 
  --data '[
    "namespace:work-product-component--CollaborationProjectCollection:1234"
  ]

Revoke the resources from the collaboration project

This API revokes resources from the collaboration project by project id. These resources don't delete from storage

 DELETE /api/pws/v1/projects/{id}/resources
curl
curl --request DELETE \
  --url '/api/pws/v1/projects/{id}/resources' \
  --header 'accept: application/json' \
  --header 'authorization: Bearer <JWT>' \
  --header 'content-type: application/json' \
  --header 'Data-Partition-Id: common' 
  --data '[
    "namespace:work-product-component--CollaborationProjectCollection:1234"
  ]

Work in progress project resources

Query all collaboration project work in progress resources

This API returns all resources in progress assigned to the collaboration project by project id

 GET /api/pws/v1/projects/{id}/wip-resources
curl
curl --request GET \
  --url '/api/pws/v1/projects/{id}/wip-resources' \
  --header 'accept: application/json' \
  --header 'authorization: Bearer <JWT>' \
  --header 'content-type: application/json' \
  --header 'Data-Partition-Id: common' 

Change Status

Change Collaboration Project status

This API changes the status of a Collaboration Project by its project ID. The status can be either 'Open' or 'Closed'

 GET /api/pws/v1/projects/{id}/status
curl
curl --request POST \
  --url '/api/pws/v1/projects/{id}/status' \
  --header 'accept: application/json' \
  --header 'authorization: Bearer <JWT>' \
  --header 'content-type: application/json' \
  --header 'Data-Partition-Id: common' \
  --data '{
    "status": "Closed"
  }' 

Project life cycle events

Query all collaboration project life cycle events

This API returns all life cycle events in the collaboration project by project id

 GET /api/pws/v1/projects/{id}/lifecycleevent
curl
curl --request GET \
  --url '/api/pws/v1/projects/{id}/lifecycleevent' \
  --header 'accept: application/json' \
  --header 'authorization: Bearer <JWT>' \
  --header 'content-type: application/json' \
  --header 'Data-Partition-Id: common' 

Assign the life cycle events to the collaboration project

This API performs assignment of life cycle events to the collaboration project by project id

 POST /api/pws/v1/projects/{id}/lifecycleevent
curl
curl --request POST \
  --url '/api/pws/v1/projects/{id}/lifecycleevent' \
  --header 'accept: application/json' \
  --header 'authorization: Bearer <JWT>' \
  --header 'content-type: application/json' \
  --header 'Data-Partition-Id: common' 
  --data '[
    "namespace:work-product-component--CollaborationProjectCollection:1234"
  ]

Assign the life cycle events to the collaboration project

This API performs assignment of life cycle events to the collaboration project by project id

 POST /api/pws/v1/projects/{id}/lifecycleevent
curl
curl --request POST \
  --url '/api/pws/v1/projects/{id}/lifecycleevent' \
  --header 'accept: application/json' \
  --header 'authorization: Bearer <JWT>' \
  --header 'content-type: application/json' \
  --header 'Data-Partition-Id: common' 
  --data '[
     {
      "Resources": [
        "namespace:any-group-type--AnyIndividualType:SomeUniqueAnyIndividualTypeID:"
      ],
      "DateTime": "2020-02-13T09:13:15.55+0000",
      "Name": "Example Name 01",
      "Remark": "Example Remark",
      "WIPResources": [
        "namespace:any-group-type--AnyIndividualType:SomeUniqueAnyIndividualTypeID:"
      ]
    }
  ]

Revoke the life cycle events from the collaboration project

This API performs delete operation of life cycle events from the collaboration project by project id

 DELETE /api/pws/v1/projects/{id}/lifecycleevent
curl
curl --request DELETE \
  --url '/api/pws/v1/projects/{id}/lifecycleevent' \
  --header 'accept: application/json' \
  --header 'authorization: Bearer <JWT>' \
  --header 'content-type: application/json' \
  --header 'Data-Partition-Id: common' 
  --data '[
     {
      "Resources": [
        "namespace:any-group-type--AnyIndividualType:SomeUniqueAnyIndividualTypeID:"
      ],
      "DateTime": "2020-02-13T09:13:15.55+0000",
      "Name": "Example Name 01",
      "Remark": "Example Remark",
      "WIPResources": [
        "namespace:any-group-type--AnyIndividualType:SomeUniqueAnyIndividualTypeID:"
      ]
    }
  ]