syntax = "proto3";

package com.wixpress.appservice.api.upstream.wix.velo.publish_pipeline.spi.v1;

import "wix/api/validations.proto";
import "wix/api/annotations.proto";
import "wix/common/spi.proto";

message VeloPublishPipelineTaskProviderConfig {
  option (.wix.api.decomposite_of) = "wix.velo.publish_pipeline.spi.v1.VeloPublishPipelineTaskProviderConfig";
  reserved 2, 3;
  // URI where the SPI Implementer is deployed
  .wix.common.spi.SpiBaseUri base_uri = 1;
  // The Velo Task name
  repeated WixCodePublishTaskNameEnum.WixCodePublishTaskName implementer_tasks_names = 4 [(.wix.api.maxSize) = 100];
}

message WixCodePublishTaskNameEnum {
  enum WixCodePublishTaskName {
    UNKNOWN = 0; // unknown
    USER_CODE_BUNDLE = 1; // user code bundle
    EXPORTED_FUNCTIONS_ANALYSIS = 2; // exported functions analysis
    IMPORTED_NAMESPACES_ANALYSIS = 3; // imported namespaces analysis
    PAGE_DETAILS_ANALYSIS = 4; // page details analysis
    USER_CODE_VALIDATION = 5; // user code validation
    CODE_PACKAGES_REGISTRATION = 6; //  code packages dependencies registration
  }
}