{"type":"api","title":"Install and Activate an Application","meta":{"id":"/apps/pubhub/media/crosswork-network-controller-7-1/f445c17e25a1120e8fbde4bd413083d0fd88b2b3/ba77f57b-02d1-3e26-99d6-40948a543c9c","info":{"title":"Crosswork AppManager API","description":"AppManager provides API methods for managing Crosswork applications that run on top of Kubernetes. This includes install-activate, deactivate, update, and uninstall for these applications. It also provides APIs to manage the internal package repository from which application installs are carried out.","version":"3.0.0","contact":{"name":"Crosswork Team, Cisco","email":"support@cisco.com"},"license":{"name":"Cisco Software License Agreement","url":"https://www.cisco.com/public/sw-license-agreement.html"}},"security":[{"bearerAuth":[]}],"x-parser-conf":{"overview":{"markdownPath":"reference/INFRA/APP/app-overview.md"}},"openapi":"3.0.0","servers":[{"url":"/crosswork/platform/v2"}],"securitySchemes":{"bearerAuth":{"type":"apiKey","name":"Authorization","in":"header","description":"Bearer token for API authentication."}}},"spec":{"description":"Install and activate Application takes in cab file,to be untarred and validated into CW system to\nmake it ready of activation. Install can include signature checks,checksum,image checks,and more.This\ninstall the from apps from repository into installed directory. Activation is carried out as part of install,\nwhich includes pod deployment.\nThe response returns a job id,job status along with\na application id which can be used to track application status .","summary":"Install and Activate an Application","operationId":"ApplicationManagerService_InstallAndActivateApplication","responses":{"200":{"description":"A successful response.","content":{"application/json":{"schema":{"type":"object","properties":{"job_id":{"type":"string","title":"Job id status for completion"},"result":{"type":"object","properties":{"request_result":{"type":"string","enum":["UNKNOWN_RESULT","REJECTED","ACCEPTED"],"default":"UNKNOWN_RESULT","description":"- REJECTED: Request has been rejected\n - ACCEPTED: Request has been accepted for processing","title":"Request - reply\nresponse","example":"ACCEPTED","$$ref":"#/components/schemas/app_managerRequestResult"},"error":{"type":"object","properties":{"message":{"type":"string","title":"Message is a textual description of reason for rejection, and can be safely passed on to operator through logs\nor UI"}},"title":"Error associated with an Object","example":{"message":"An error occurred due to invalid input."},"$$ref":"#/components/schemas/common_platformError"}},"description":"Result is used to convey whether an operation (individual or in a batch)\nhas been accepted or rejected. For sync API's an error or rejection indicates failure of operation.\nA string error message accompanies rejection to support troubleshooting. For notification objects,\nrejection represents failure to do intended operation.","example":{"request_result":"ACCEPTED","error":null},"$$ref":"#/components/schemas/app_managerResult"}},"title":"Install Application Response","example":{"job_id":"job7890","result":{"request_result":"ACCEPTED","error":null}},"$$ref":"#/components/schemas/app_managerInstallAndActivateApplicationResponse"}}}},"default":{"description":"An unexpected error response.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"integer","format":"int32"},"message":{"type":"string"},"details":{"type":"array","items":{"type":"object","properties":{"type_url":{"type":"string","description":"A URL/resource name whose content describes the type of the\nserialized protocol buffer message.\n\nFor URLs which use the scheme `http`, `https`, or no scheme, the\nfollowing restrictions and interpretations apply:\n\n* If no scheme is provided, `https` is assumed.\n* The last segment of the URL's path must represent the fully\n qualified name of the type (as in `path/google.protobuf.Duration`).\n The name should be in a canonical form (e.g., leading \".\" is\n not accepted).\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics."},"value":{"type":"string","format":"byte","description":"Must be a valid serialized protocol buffer of the above specified type."}},"description":"`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(&foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := &pb.Foo{...}\n any, err := ptypes.MarshalAny(foo)\n ...\n foo := &pb.Foo{}\n if err := ptypes.UnmarshalAny(any, foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }","$$ref":"#/components/schemas/protobufAny"}}},"example":{"error":"RuntimeException","code":500,"message":"An unexpected error occurred during execution.","details":[{"type_url":"type.googleapis.com/google.protobuf.Any","value":"Error details in binary format"}]},"$$ref":"#/components/schemas/gatewayruntimeError"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"package_identifier":{"type":"object","properties":{"id":{"type":"string","title":"id"},"version":{"type":"string","title":"version"}},"title":"Repo app package identifier","example":{"id":"pkg1234","version":"1.0.0"},"$$ref":"#/components/schemas/app_managerPackageIdentifier"},"force":{"type":"boolean","title":"force_install allows you to install apps without dependency checks"}},"title":"Install a Application Request","example":{"package_identifier":{"id":"pkg1234","version":"1.0.0"},"force":true},"$$ref":"#/components/schemas/app_managerInstallAndActivateApplicationRequest"}}},"description":"Includes package identifier and force flag for installation and activation.","required":true},"tags":["ApplicationManagerService"],"__originalOperationId":"ApplicationManagerService_InstallAndActivateApplication","security":[{"bearerAuth":[]}],"method":"post","path":"/capp/application/installactivate"}}