syntax = "proto3";

import "google/protobuf/wrappers.proto";
import "../../weave/common.proto";

package nest.trait.resourcedirectory;

message RelatedResourcesTrait {
    map<uint32, RelatedResource> relatedResources = 1;
    map<uint32, RelatedResource> allResources = 2;

    enum CloudPlatformVisibility {
        CLOUD_PLATFORM_VISIBILITY_UNSPECIFIED = 0;
        CLOUD_PLATFORM_VISIBILITY_RTS = 1;
        CLOUD_PLATFORM_VISIBILITY_PHOENIX = 2;
    }

    message InterfaceStruct {
        weave.common.InterfaceName interfaceName = 1;
        uint32 version = 2;
    }

    message RelatedResource {
        weave.common.ResourceId resourceId = 1;
        weave.common.ResourceName resourceTypeName = 2;
        uint32 resourceVersion = 3;
        google.protobuf.UInt32Value vendorId = 4;
        google.protobuf.UInt32Value productId = 5;
        google.protobuf.StringValue softwareVersion = 6;
        repeated InterfaceStruct interfaces = 7;
        CloudPlatformVisibility cloudPlatformVisibility = 8;
    }

    message SetRelatedResourcesRequest {
        repeated weave.common.ResourceId relatedResourceId = 1;
    }

    message ResetRelatedResoucesRequest {
    }
}
