{"swagger":"2.0","info":{"description":"Provides API to manage Topology in DPM","version":"1.0.0","title":"Topology RESTful API"},"basePath":"/topology/rest","tags":[{"name":"topologies"}],"paths":{"/v1/topologies/exportAllPublishedTopologies":{"post":{"tags":["topologies"],"summary":"Export all published Topologies","description":"","operationId":"exportAllPublishedTopologies","produces":["application/octet-stream"],"parameters":[],"security":[{"basic":[]}],"responses":{"default":{"description":"successful operation"}}}},"/v1/topologies/deleteTopologies":{"post":{"tags":["topologies"],"summary":"Delete topologies for all given topology IDs","description":"","operationId":"deleteTopologies","produces":["application/json"],"parameters":[{"in":"body","name":"body","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"security":[{"basic":[]}],"responses":{"default":{"description":"successful operation"}}}},"/v1/topologies/deleteTopologyVersions":{"post":{"tags":["topologies"],"summary":"Delete topologies commit for all given topology commit IDs","description":"","operationId":"deleteTopologyVersions","produces":["application/json"],"parameters":[{"in":"body","name":"body","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"security":[{"basic":[]}],"responses":{"default":{"description":"successful operation"}}}},"/v1/topologies/acls":{"post":{"tags":["topologies"],"summary":"Returns ACLs for all given Topology IDs","description":"","operationId":"getAclsForTopologies","produces":["application/json"],"parameters":[{"in":"body","name":"body","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"security":[{"basic":[]}],"responses":{"200":{"description":"successful operation","schema":{"type":"array","items":{"$ref":"#/definitions/AclJson"}}}}}},"/v1/topologies/count":{"get":{"tags":["topologies"],"summary":"Get all topologies count","description":"","operationId":"getOrgTopologiesCount","produces":["application/json"],"parameters":[{"name":"organization","in":"query","required":false,"type":"string"}],"security":[{"basic":[]}],"responses":{"200":{"description":"successful operation","schema":{"type":"object","additionalProperties":{"type":"object"}}}}}},"/v1/topologies":{"get":{"tags":["topologies"],"summary":"Get all topologies","description":"","operationId":"getTopologies","produces":["application/json"],"parameters":[{"name":"organization","in":"query","required":false,"type":"string"},{"name":"offset","in":"query","required":false,"type":"integer","default":0,"format":"int32"},{"name":"len","in":"query","required":false,"type":"integer","default":-1,"format":"int32"},{"name":"orderBy","in":"query","required":false,"type":"string","default":"NAME","enum":["NAME","CREATOR","CREATE_TIME","LAST_MODIFIED_TIME","VERSION"]},{"name":"order","in":"query","required":false,"type":"string","default":"ASC","enum":["ASC","DESC"]},{"name":"filterText","in":"query","required":false,"type":"string"},{"name":"withWrapper","in":"query","required":false,"type":"boolean"}],"security":[{"basic":[]}],"responses":{"200":{"description":"successful operation","schema":{"type":"array","items":{"$ref":"#/definitions/TopologyJson"}}}}},"put":{"tags":["topologies"],"summary":"Create new topology","description":"","operationId":"createTopology","produces":["application/json"],"parameters":[{"in":"body","name":"body","required":false,"schema":{"$ref":"#/definitions/TopologyJson"}}],"security":[{"basic":[]}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/TopologyJson"}}}}},"/v1/topologies/importTopologies":{"post":{"tags":["topologies"],"summary":"Import Topologies from compressed archive","description":"","operationId":"importTopologies","consumes":["multipart/form-data"],"produces":["application/json"],"parameters":[{"name":"file","in":"formData","required":false,"type":"file"},{"name":"updateNumInstances","in":"query","required":false,"type":"boolean","default":false},{"name":"updateRuntimeParameters","in":"query","required":false,"type":"boolean","default":false},{"name":"updateLabels","in":"query","required":false,"type":"boolean","default":false},{"name":"updateMigrateOffsets","in":"query","required":false,"type":"boolean","default":true},{"name":"forceImport","in":"query","required":false,"type":"boolean","default":false}],"security":[{"basic":[]}],"responses":{"default":{"description":"successful operation"}}}},"/v1/topologies/exportTopologies":{"post":{"tags":["topologies"],"summary":"Export Topologies","description":"","operationId":"exportTopologies","produces":["application/octet-stream"],"parameters":[{"in":"body","name":"body","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"security":[{"basic":[]}],"responses":{"default":{"description":"successful operation"}}}},"/v1/topologies/listAclAudits":{"get":{"tags":["topologies"],"summary":"Get all user actions for given Organization ID","description":"","operationId":"listAclAuditsForOrg","produces":["application/json"],"parameters":[{"name":"organization","in":"query","required":false,"type":"string"},{"name":"offset","in":"query","required":false,"type":"integer","default":0,"format":"int32"},{"name":"len","in":"query","required":false,"type":"integer","default":-1,"format":"int32"},{"name":"sortField","in":"query","required":false,"type":"string","default":"TIME","enum":["TIME","ACTION","REQUESTER_ID","ACL_ID"]},{"name":"sortOrder","in":"query","required":false,"type":"string","default":"DESC","enum":["ASC","DESC"]},{"name":"withWrapper","in":"query","required":false,"type":"boolean","default":false}],"security":[{"basic":[]}],"responses":{"200":{"description":"successful operation","schema":{"type":"array","items":{"$ref":"#/definitions/AclAuditJson"}}}}}},"/v1/topology/{commitId}/getJobsAndMetadata":{"get":{"tags":["topologies"],"summary":"Get all Job Ids for given topology commit ID","description":"","operationId":"getJobsAndMetadataForTopologyCommit","produces":["application/json"],"parameters":[{"name":"commitId","in":"path","required":true,"type":"string"}],"security":[{"basic":[]}],"responses":{"200":{"description":"successful operation","schema":{"type":"object","additionalProperties":{"type":"object"}}}}}},"/v1/topology/{topologyId}/acl":{"get":{"tags":["topologies"],"summary":"Get ACL for a given topology","description":"","operationId":"getAcl","produces":["application/json"],"parameters":[{"name":"topologyId","in":"path","required":true,"type":"string"}],"security":[{"basic":[]}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/AclJson"}}}},"post":{"tags":["topologies"],"summary":"Update ACL for a given topology","description":"","operationId":"updateTopologyAcl","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"topologyId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":false,"schema":{"$ref":"#/definitions/AclJson"}}],"security":[{"basic":[]}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/AclJson"}}}}},"/v1/topology/deleteSubjectFromAcl/{subjectId}":{"delete":{"tags":["topologies"],"summary":"Delete subject from ACL","description":"","operationId":"deleteSubjectFromACL","produces":["application/json"],"parameters":[{"name":"subjectId","in":"path","required":true,"type":"string"}],"security":[{"basic":[]}],"responses":{"default":{"description":"successful operation"}}}},"/v1/topology/{topologyId}/permissions/{subjectId}":{"get":{"tags":["topologies"],"summary":"Get permissions on a given topology for a given subject","description":"","operationId":"getPermission","produces":["application/json"],"parameters":[{"name":"topologyId","in":"path","required":true,"type":"string"},{"name":"subjectId","in":"path","required":true,"type":"string"}],"security":[{"basic":[]}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/AclJson"}}}},"post":{"tags":["topologies"],"summary":"Update permissions on a given topology for a given subject","description":"","operationId":"updatePermissions","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"topologyId","in":"path","required":true,"type":"string"},{"name":"subjectId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":false,"schema":{"$ref":"#/definitions/PermissionJson"}}],"security":[{"basic":[]}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/AclJson"}}}}},"/v1/topology/{topologyId}/log":{"get":{"tags":["topologies"],"summary":"Get all topology commits for given topology ID","description":"","operationId":"getLog","produces":["application/json"],"parameters":[{"name":"topologyId","in":"path","required":true,"type":"string"},{"name":"organization","in":"query","required":false,"type":"string"},{"name":"offset","in":"query","required":false,"type":"integer","default":0,"format":"int32"},{"name":"len","in":"query","required":false,"type":"integer","default":-1,"format":"int32"},{"name":"order","in":"query","required":false,"type":"string","default":"ASC","enum":["ASC","DESC"]},{"name":"withWrapper","in":"query","required":false,"type":"boolean","default":false}],"security":[{"basic":[]}],"responses":{"200":{"description":"successful operation","schema":{"type":"array","items":{"$ref":"#/definitions/TopologyJson"}}}}}},"/v1/topology/{commitId}":{"get":{"tags":["topologies"],"summary":"Get topology for given commit ID","description":"","operationId":"getTopology","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"commitId","in":"path","required":true,"type":"string"},{"name":"organization","in":"query","required":false,"type":"string"},{"name":"validate","in":"query","required":false,"type":"boolean","default":false}],"security":[{"basic":[]}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/TopologyJson"}}}},"post":{"tags":["topologies"],"summary":"Update topology","description":"","operationId":"saveTopology","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"commitId","in":"path","required":true,"type":"string"},{"in":"body","name":"body","required":false,"schema":{"$ref":"#/definitions/TopologyJson"}}],"security":[{"basic":[]}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/TopologyJson"}}}},"delete":{"tags":["topologies"],"summary":"Delete topology commit for given Commit ID","description":"","operationId":"deleteTopology","produces":["application/json"],"parameters":[{"name":"commitId","in":"path","required":true,"type":"string"}],"security":[{"basic":[]}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/TopologyJson"}}}}},"/v1/topology/{commitId}/publish":{"post":{"tags":["topologies"],"summary":"Publish Topology","description":"","operationId":"publishTopology","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"commitId","in":"path","required":true,"type":"string"},{"name":"commitMessage","in":"query","required":false,"type":"string"}],"security":[{"basic":[]}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/TopologyJson"}}}}},"/v1/topology/{commitId}/createDraft":{"post":{"tags":["topologies"],"summary":"Create draft copy of topology","description":"","operationId":"createDraft","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"commitId","in":"path","required":true,"type":"string"}],"security":[{"basic":[]}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/TopologyJson"}}}}},"/v1/topology/{commitId}/validate":{"post":{"tags":["topologies"],"summary":"Validate Topology","description":"","operationId":"validateTopology","consumes":["application/json"],"produces":["application/json"],"parameters":[{"name":"commitId","in":"path","required":true,"type":"string"}],"security":[{"basic":[]}],"responses":{"200":{"description":"successful operation","schema":{"type":"array","items":{"type":"object","additionalProperties":{"type":"object"}}}}}}},"/v1/topology/listAclAudits":{"get":{"tags":["topologies"],"summary":"Get all user actions for given Organization ID","description":"","operationId":"listAclAuditsForOrg_1","produces":["application/json"],"parameters":[{"name":"organization","in":"query","required":false,"type":"string"},{"name":"offset","in":"query","required":false,"type":"integer","default":0,"format":"int32"},{"name":"len","in":"query","required":false,"type":"integer","default":-1,"format":"int32"},{"name":"sortField","in":"query","required":false,"type":"string","default":"TIME","enum":["TIME","ACTION","REQUESTER_ID","ACL_ID"]},{"name":"sortOrder","in":"query","required":false,"type":"string","default":"DESC","enum":["ASC","DESC"]},{"name":"withWrapper","in":"query","required":false,"type":"boolean","default":false}],"security":[{"basic":[]}],"responses":{"200":{"description":"successful operation","schema":{"type":"array","items":{"$ref":"#/definitions/AclAuditJson"}}}}}}},"definitions":{"AclJson":{"type":"object","properties":{"resourceId":{"type":"string"},"organization":{"type":"string"},"resourceOwner":{"type":"string"},"resourceCreatedTime":{"type":"integer","format":"int64"},"resourceType":{"type":"string","enum":["JOB","LOCAL_PIPELINE","PIPELINE","SDC","TOPOLOGY","SLA","ALERT","DEPLOYMENT","DPM_AGENT","SCHEDULER_JOB","EVENT_SUBSCRIPTION","REPORT_DEFINITION","CONNECTION","CSP_ENVIRONMENT","CSP_DEPLOYMENT","STAGE_DESTINATION","MIGRATION","JOB_SEQUENCE"]},"lastModifiedBy":{"type":"string"},"lastModifiedOn":{"type":"integer","format":"int64"},"permissions":{"type":"array","items":{"$ref":"#/definitions/PermissionJson"}}}},"PermissionJson":{"type":"object","properties":{"resourceId":{"type":"string"},"subjectId":{"type":"string"},"subjectType":{"type":"string","enum":["USER","GROUP"]},"lastModifiedBy":{"type":"string"},"lastModifiedOn":{"type":"integer","format":"int64"},"actions":{"type":"array","items":{"type":"string","enum":["READ","WRITE","EXECUTE"]}}}},"TopologyJson":{"type":"object","properties":{"commitId":{"type":"string"},"topologyId":{"type":"string"},"organization":{"type":"string"},"lastModifiedBy":{"type":"string"},"lastModifiedOn":{"type":"integer","format":"int64"},"name":{"type":"string"},"description":{"type":"string"},"parentVersion":{"type":"string"},"version":{"type":"string"},"committer":{"type":"string"},"commitMessage":{"type":"string"},"commitTime":{"type":"integer","format":"int64"},"draft":{"type":"boolean"},"defaultTopology":{"type":"boolean"},"topologyDefinition":{"type":"string"},"provenanceMetaData":{"type":"object","additionalProperties":{"type":"string"}},"projectId":{"type":"string"}}},"AclAuditJson":{"type":"object","properties":{"subjectId":{"type":"string"},"resourceId":{"type":"string"},"resourceType":{"type":"string"},"action":{"type":"string"},"fieldType":{"type":"string"},"oldValue":{"type":"string"},"newValue":{"type":"string"},"requesterId":{"type":"string"},"orgId":{"type":"string"},"time":{"type":"integer","format":"int64"},"ipAddress":{"type":"string"}}}}}