Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
import com.morpheusdata.core.provisioning.MorpheusProvisionService;
import com.morpheusdata.model.BackupProvider;
import com.morpheusdata.core.admin.MorpheusAdminService;
import com.morpheusdata.core.system.MorpheusSystemService;

public interface MorpheusAsyncServices {
/**
Expand Down Expand Up @@ -463,6 +464,14 @@ public interface MorpheusAsyncServices {
*/
MorpheusAdminService getAdmin();

/**
* Returns the {@link MorpheusSystemService} which allows access to {@link MorpheusDataService} related services
* for System objects. Sub-services for SystemType and SystemComponent are accessible via
* {@link MorpheusSystemService#getType()} and {@link MorpheusSystemService#getComponent()}.
* @return an instance of MorpheusSystemService
*/
MorpheusSystemService getSystem();

/**
* return the {@link MorpheusAccountCertificateService} which allows access to {@link com.morpheusdata.model.AccountCertificate}
* data operations such as create/update/query operations
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import com.morpheusdata.core.guidance.MorpheusSynchronousAccountDiscoveryService;
import com.morpheusdata.core.synchronous.*;
import com.morpheusdata.core.synchronous.admin.MorpheusSynchronousAdminService;
import com.morpheusdata.core.synchronous.system.MorpheusSynchronousSystemService;
import com.morpheusdata.core.synchronous.backup.MorpheusSynchronousBackupJobService;
import com.morpheusdata.core.synchronous.backup.MorpheusSynchronousBackupProviderService;
import com.morpheusdata.core.synchronous.backup.MorpheusSynchronousBackupService;
Expand Down Expand Up @@ -435,6 +436,14 @@ public interface MorpheusServices {
*/
MorpheusSynchronousAdminService getAdmin();

/**
* Returns the {@link MorpheusSynchronousSystemService} which allows synchronous access to System objects.
* Sub-services for SystemType and SystemComponent are accessible via
* {@link MorpheusSynchronousSystemService#getType()} and {@link MorpheusSynchronousSystemService#getComponent()}.
* @return an instance of MorpheusSynchronousSystemService
*/
MorpheusSynchronousSystemService getSystem();

/**
* return the {@link MorpheusSynchronousAccountCertificateService} which allows access to {@link com.morpheusdata.model.AccountCertificate}
* data operations such as create/update/query operations
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
* Copyright 2025 Morpheus Data, LLC.
*
* Licensed under the PLUGIN CORE SOURCE LICENSE (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://raw.githubusercontent.com/gomorpheus/morpheus-plugin-core/v1.0.x/LICENSE
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.morpheusdata.core.synchronous.system;

import com.morpheusdata.core.MorpheusSynchronousDataService;
import com.morpheusdata.core.MorpheusSynchronousIdentityService;
import com.morpheusdata.model.system.SystemComponent;
import com.morpheusdata.model.projection.SystemComponentIdentityProjection;

/**
* Synchronous access to {@link SystemComponent} objects via the plugin context.
* Accessible via {@code morpheusContext.services.system.getComponent()}.
*/
public interface MorpheusSynchronousSystemComponentService extends MorpheusSynchronousDataService<SystemComponent, SystemComponentIdentityProjection>, MorpheusSynchronousIdentityService<SystemComponentIdentityProjection> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*
* Copyright 2025 Morpheus Data, LLC.
*
* Licensed under the PLUGIN CORE SOURCE LICENSE (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://raw.githubusercontent.com/gomorpheus/morpheus-plugin-core/v1.0.x/LICENSE
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.morpheusdata.core.synchronous.system;

import com.morpheusdata.core.MorpheusSynchronousDataService;
import com.morpheusdata.core.MorpheusSynchronousIdentityService;
import com.morpheusdata.model.system.System;
import com.morpheusdata.model.projection.SystemIdentityProjection;

/**
* Synchronous access to {@link System} objects via the plugin context.
* Accessible via {@code morpheusContext.services.system}.
* Sub-services are available via {@link #getType()} and {@link #getComponent()}.
*/
public interface MorpheusSynchronousSystemService extends MorpheusSynchronousDataService<System, SystemIdentityProjection>, MorpheusSynchronousIdentityService<SystemIdentityProjection> {

/**
* Returns the {@link MorpheusSynchronousSystemTypeService} for querying SystemType objects.
* @return an instance of MorpheusSynchronousSystemTypeService
*/
MorpheusSynchronousSystemTypeService getType();

/**
* Returns the {@link MorpheusSynchronousSystemComponentService} for querying SystemComponent objects.
* @return an instance of MorpheusSynchronousSystemComponentService
*/
MorpheusSynchronousSystemComponentService getComponent();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
* Copyright 2025 Morpheus Data, LLC.
*
* Licensed under the PLUGIN CORE SOURCE LICENSE (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://raw.githubusercontent.com/gomorpheus/morpheus-plugin-core/v1.0.x/LICENSE
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.morpheusdata.core.synchronous.system;

import com.morpheusdata.core.MorpheusSynchronousDataService;
import com.morpheusdata.core.MorpheusSynchronousIdentityService;
import com.morpheusdata.model.system.SystemType;
import com.morpheusdata.model.projection.SystemTypeIdentityProjection;

/**
* Synchronous access to {@link SystemType} objects via the plugin context.
* Accessible via {@code morpheusContext.services.system.getType()}.
*/
public interface MorpheusSynchronousSystemTypeService extends MorpheusSynchronousDataService<SystemType, SystemTypeIdentityProjection>, MorpheusSynchronousIdentityService<SystemTypeIdentityProjection> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
* Copyright 2025 Morpheus Data, LLC.
*
* Licensed under the PLUGIN CORE SOURCE LICENSE (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://raw.githubusercontent.com/gomorpheus/morpheus-plugin-core/v1.0.x/LICENSE
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.morpheusdata.core.system;

import com.morpheusdata.core.MorpheusDataService;
import com.morpheusdata.core.MorpheusIdentityService;
import com.morpheusdata.model.system.SystemComponent;
import com.morpheusdata.model.projection.SystemComponentIdentityProjection;

/**
* Provides access to {@link SystemComponent} objects via the plugin context.
* Accessible via {@code morpheusContext.async.system.getComponent()}.
*/
public interface MorpheusSystemComponentService extends MorpheusDataService<SystemComponent, SystemComponentIdentityProjection>, MorpheusIdentityService<SystemComponentIdentityProjection> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*
* Copyright 2025 Morpheus Data, LLC.
*
* Licensed under the PLUGIN CORE SOURCE LICENSE (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://raw.githubusercontent.com/gomorpheus/morpheus-plugin-core/v1.0.x/LICENSE
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.morpheusdata.core.system;

import com.morpheusdata.core.MorpheusDataService;
import com.morpheusdata.core.MorpheusIdentityService;
import com.morpheusdata.model.system.System;
import com.morpheusdata.model.projection.SystemIdentityProjection;

/**
* Provides access to {@link System} objects via the plugin context.
* Accessible via {@code morpheusContext.async.system}.
* Sub-services are available via {@link #getType()} and {@link #getComponent()}.
*/
public interface MorpheusSystemService extends MorpheusDataService<System, SystemIdentityProjection>, MorpheusIdentityService<SystemIdentityProjection> {

/**
* Returns the {@link MorpheusSystemTypeService} for querying SystemType objects.
* @return an instance of MorpheusSystemTypeService
*/
MorpheusSystemTypeService getType();

/**
* Returns the {@link MorpheusSystemComponentService} for querying SystemComponent objects.
* @return an instance of MorpheusSystemComponentService
*/
MorpheusSystemComponentService getComponent();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
* Copyright 2025 Morpheus Data, LLC.
*
* Licensed under the PLUGIN CORE SOURCE LICENSE (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://raw.githubusercontent.com/gomorpheus/morpheus-plugin-core/v1.0.x/LICENSE
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.morpheusdata.core.system;

import com.morpheusdata.core.MorpheusDataService;
import com.morpheusdata.core.MorpheusIdentityService;
import com.morpheusdata.model.system.SystemType;
import com.morpheusdata.model.projection.SystemTypeIdentityProjection;

/**
* Provides access to {@link SystemType} objects via the plugin context.
* Accessible via {@code morpheusContext.async.system.getType()}.
*/
public interface MorpheusSystemTypeService extends MorpheusDataService<SystemType, SystemTypeIdentityProjection>, MorpheusIdentityService<SystemTypeIdentityProjection> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
/*
* Copyright 2025 Morpheus Data, LLC.
*
* Licensed under the PLUGIN CORE SOURCE LICENSE (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://raw.githubusercontent.com/gomorpheus/morpheus-plugin-core/v1.0.x/LICENSE
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.morpheusdata.model.projection;

/**
* Provides a subset of properties from the {@link com.morpheusdata.model.system.SystemComponent}
* for comparison with less bandwidth usage and memory footprint. This is a DTO Projection object.
*/
public class SystemComponentIdentityProjection extends MorpheusIdentityModel {
protected String name;
protected String externalId;
/**
* The {@link com.morpheusdata.model.system.SystemComponentType#getCode()} mapped here for quick filter search.
*/
protected String typeCode;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
markDirty("name", name, this.name);
}

public String getExternalId() {
return externalId;
}

public void setExternalId(String externalId) {
this.externalId = externalId;
markDirty("externalId", externalId, this.externalId);
}

public String getTypeCode() {
return typeCode;
}

public void setTypeCode(String typeCode) {
this.typeCode = typeCode;
markDirty("typeCode", typeCode, this.typeCode);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
/*
* Copyright 2025 Morpheus Data, LLC.
*
* Licensed under the PLUGIN CORE SOURCE LICENSE (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://raw.githubusercontent.com/gomorpheus/morpheus-plugin-core/v1.0.x/LICENSE
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.morpheusdata.model.projection;

/**
* Provides a subset of properties from the {@link com.morpheusdata.model.system.System}
* for comparison with less bandwidth usage and memory footprint. This is a DTO Projection object.
*/
public class SystemIdentityProjection extends MorpheusIdentityModel {
protected String name;
protected String externalId;
/**
* The {@link com.morpheusdata.model.system.SystemType#getCode()} mapped here for quick filter search.
*/
protected String typeCode;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
markDirty("name", name, this.name);
}

public String getExternalId() {
return externalId;
}

public void setExternalId(String externalId) {
this.externalId = externalId;
markDirty("externalId", externalId, this.externalId);
}

public String getTypeCode() {
return typeCode;
}

public void setTypeCode(String typeCode) {
this.typeCode = typeCode;
markDirty("typeCode", typeCode, this.typeCode);
}
}
Loading
Loading