syntax = "proto3";

package flyteidl.admin;
option go_package = "github.com/lyft/flyteidl/gen/pb-go/flyteidl/admin";

import "flyteidl/admin/matchable_resource.proto";

message ProjectDomainAttributes {
    // Unique project id for which this set of attributes will be applied.
    string project                 = 1;

    // Unique domain id for which this set of attributes will be applied.
    string domain                  = 2;

    MatchingAttributes matching_attributes = 3; 
}

// Sets custom attributes for a project-domain combination.
message ProjectDomainAttributesUpdateRequest {
    ProjectDomainAttributes attributes = 1;
}

// Purposefully empty, may be populated in the future.
message ProjectDomainAttributesUpdateResponse {
}

message ProjectDomainAttributesGetRequest {
    // Unique project id which this set of attributes references.
    string project                 = 1;

    // Unique domain id which this set of attributes references.
    string domain                  = 2;

    MatchableResource resource_type = 3;
}

message ProjectDomainAttributesGetResponse {
  ProjectDomainAttributes attributes = 1;
}


message ProjectDomainAttributesDeleteRequest {
    // Unique project id which this set of attributes references.
    string project                 = 1;

    // Unique domain id which this set of attributes references.
    string domain                  = 2;

    MatchableResource resource_type = 3;
}

// Purposefully empty, may be populated in the future.
message ProjectDomainAttributesDeleteResponse {
}

