/*******************************************************************************
* Copyright (c) 2016 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package com.openshift.restclient.model.build;
import java.util.List;
import com.openshift.restclient.capability.ICapability;
import com.openshift.restclient.model.IBuildConfig;
import com.openshift.restclient.model.IEnvironmentVariable;
import com.openshift.restclient.model.IResourceBuilder;
public interface IBuildConfigBuilder extends IResourceBuilder<IBuildConfig, IBuildConfigBuilder>, ICapability {
ISourceStrategyBuilder usingSourceStrategy();
IJenkinsPipelineStrategyBuilder usingJenkinsPipelineStrategy();
IGitSourceBuilder fromGitSource();
IBuildConfigBuilder toImageStreamTag(String tag);
IBuildConfigBuilder buildOnSourceChange(boolean onSourceChange);
IBuildConfigBuilder buildOnImageChange(boolean onImageChange);
IBuildConfigBuilder buildOnConfigChange(boolean onConfigChange);
interface IGitSourceBuilder extends Endable{
IBuildConfigBuilder end();
IGitSourceBuilder fromGitUrl(String url);
IGitSourceBuilder usingGitReference(String ref);
IGitSourceBuilder inContextDir(String contextDir);
}
interface ISourceStrategyBuilder extends Endable{
IBuildConfigBuilder end();
/**
* The imagestream tag in form of 'name:tag"
* @param tag 'name:tag'
* @return
*/
ISourceStrategyBuilder fromImageStreamTag(String tag);
ISourceStrategyBuilder inNamespace(String namespace);
ISourceStrategyBuilder withEnvVars(List<IEnvironmentVariable> envVars);
/**
* @param tag docker pullspec
* @return
*/
ISourceStrategyBuilder fromDockerImage(String tag);
}
interface IJenkinsPipelineStrategyBuilder extends Endable {
IBuildConfigBuilder end();
IJenkinsPipelineStrategyBuilder usingFile(String file);
IJenkinsPipelineStrategyBuilder usingFilePath(String filePath);
}
}